Manajemen-File

Convert png ke pdf

Melengkapi catatan yang sudah ada tentang konversi file. Kali ini adalah konversi atau convert file dari berformat png menjadi pdf. Misalkan file gambar.png akan dikonversi menjadi pdf, maka command-nya

$ mogrify -format pdf gambar.png

Command tersebut di atas adalah bagian dari imagemagick yang secara default sudah terinstall di slackware.

Convert pdf ke png secara massal

Salah satu hal yang saya sukai dari keunggulan linux adalah kemudahannya dalam melakukan sesuatu secara massal dengan mudah, termasuk di antaranya konversi file. Hanya dengan mengetikkan atau bahkan cukup copy paste edit kita bisa menghemat waktu dan tenaga dalam mengubah format file.

Kali ini kita akan mengubah atau convert file dari pdf menjadi gambar png. Tool yang digunakan adalah pdftopng. Tool ini secara default sudah ter-install di Slackware menjadi bagian dari package xpdf.

Mencari file dan menyalinnya

Salah satu keunggulan linux adalah mudahnya untuk melakukan otomatisasi yang dapat dilakukan dengan mengetikkan sebaris perintah. Sebagai contoh, apabila ingin melakukan pencadangan semua file tanpa melihat struktur direktorinya ke media penyimpanan eksternal bisa mengetikkan

$ find direktori_asli -iname '*' -exec cp '{}' direktori_cadangan \;

Perintah tersebut akan membuat semua file di direktori_asli berpindah ke direktori_cadangan.

Memperkecil ukuran file pdf

Untuk memperkecil ukuran file pdf bisa mengeksekusi

$ ps2pdf filelama.pdf filebaru.pdf

Command tersebut akan membuat ukuran filebaru.pdf merupakan filelama.pdf dengan ukuran lebih kecil. Ada opsi yang bisa diberikan yang tentunya dapat digunakan sesuai kebutuhan

  1. -dPDFSETTINGS=/screen untuk mendapatkan ukuran yang jauh lebih kecil dengan kualitas 72 dpi.
  2. -dPDFSETTINGS=/ebooks untuk mendapatkan ukuran lebih kecil dengan kualitas 150 dpi.
  3. -dPDFSETTINGS=/prepress untuk kualitas 300 dpi.
  4. -dPDFSETTINGS=/printer untuk kualitas printer (300 dpi).
  5. -dPDFSETTINGS=/default untuk berbagai keperluan tapi kadang ukurannya tidak beda teralu jauh dengan aslinya.

Mount media read write mode

Mount media (kasus kali ini pada flashdisk) melalui command line secara default membuat ownership filenya menjadi milik root. Hal ini berakibat media tersebut berjalan pada mode read-only. Hanya user setingkat root yang bisa melakukan write on.

Kasus ini bisa disiasati dengan mendefinisikan id user yang akan melakukan write on.

mount -o rw,uid=1020,gid=120 /dev/sdb1 /media/hd0/

uid dan gid di sini hanya contoh, silakan disesuaikan.

Dolphin the wastebin has reached its maximum size

Efek samping work from home, harddisk laptop lebih cepat penuh. Saat menghapus file-file yang sudah tidak diperlukan, Dolphin mengeluarkan warning

Job Failed
The wastebin has reached its maximum size!
Cleanup the wastebin manually

Ada 2 alternatif solusi:

  1. Sesuai yang ada di warning untuk menghapus file-file di wastebin secara manual.
  2. Mengatur ulang wastebin pada Dolphin. Wastebin diatur melalui menu Settings –> Configure Dolphin klik Wastebin. Di sini kita bisa mengatur apakah file di wastebin akan dihapus secara otomatis setelah tenggat yang ditentukan. Kemudian bisa diatur pula limit kapasitas wastebin. Lalu, apakah yang akan dilakukan Dolphin ketika wastebin sudah penuh, apakah hanya memunculkan warning, menghapus file paling lawas atau menghapus file paling besar size-nya.

Silakan dipilih sesuai kebutuhan.

Menghapus history QtAV Player

Untuk menghapus history atau riwayat video yang ditonton dengan QtAV Player ada 2 cara:

  1. melalui QtAV Player dengan klik History kemudian Clear
  2. menghapus file historynya
$ rm ~/.local/share/Player/*.qds

Command tersebut juga menghapus riwayat playlist

Memformat dvdrw

Sedang membutuhkan kepingan DVDRW kosong tapi tidak menemukannya. Yang ditemukan DVDRW yang sudah ada isinya tetapi sudah tidak berguna. Baiklah DVDRW nya disuperbersihkan saja alias diformat.

DVDRW terdeteksi sebagai /dev/sr0

dvd+rw-format -f /dev/sr0

sbocheck /usr/sbo/repo exists and is not empty

Malam ini, ketika akan update SBo, ternyata tanpa disadari internet disconnect sebelumnya.

bash-5.1# sbocheck
Updating SlackBuilds tree...
fatal: unable to look up github.com (port 9418) (Temporary failure in name resolution)
Could not sync from git://github.com/Ponce/slackbuilds.git.

Setelah internet tidak ada masalah, gantian sbotools-nya yang masalah

bash-5.1# sbocheck
/usr/sbo/repo exists and is not empty. Exiting.

Baiklah, local repository-nya minta dikosongkan dulu

bash-5.1# rm -r /usr/sbo/repo
bash-5.1# sbosnap fetch
Pulling SlackBuilds tree...
Cloning into '/usr/sbo/repo'...
remote: Enumerating objects: 42, done.
remote: Counting objects: 100% (42/42), done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 498277 (delta 8), reused 12 (delta 0), pack-reused 498235
Receiving objects: 100% (498277/498277), 142.33 MiB | 199.00 KiB/s, done.
Resolving deltas: 100% (345959/345959), done.
Updating files: 100% (40245/40245), done.

Recheck

Burn iso ke dvd

Misal, file slackware64-live-current.iso akan di-burn ke DVD. DVD terdeteksi oleh sistem sebagai /dev/sr0. Command dijalankan root.

$ growisofs -dvd-compat -Z /dev/sr0=slackware64-live-current.iso

Transfer file dengan lftp

Salah 1 akibat Work from Home a.k.a WfH adalah kapasitas storage laptop menjadi penuh. Semakin banyak file, semakin berkurang free space. Untuk menyiasatinya, ketika ada kesempatan bekerja di kantor, file-file tersebut ditransfer ke komputer kantor. Karena komputer kantor menggunakan Windows 7 yang mana saya tidak paham bagaimana cara file sharing-nya saya gunakan ftp. Mungkin karena sudah terlanjur nyaman memakai slackware, saya tidak mau ribet pengaturan ftpnya di komputer kantor. Serahkan saja ke bagian IT untuk installnya. Pasrah sakbongkokan. Hahahaha….

Menggabungkan file pdf

Misalkan mempunyai 2 file ebook yaitu ebook1.pdf dan ebook2.pdf. Kedua file ini akan digabung menjadi ebook.pdf. Maka untuk menggabungkannya

$ pdfunite ebook1.pdf ebook2.pdf ebook.pdf

Mount partisi hibernated windows

Lima tahun yang lalu ketika membeli laptop yang saat ini digunakan untuk menulis catatan ini, toko memberikan OS Windows 10 tanpa lisensinya. Penulis tetap mempertahankannya untuk jaga-jaga jika di kemudian hari kepepet sangat membutuhkan Windows.

Tadi pagi iseng ingin melihat-lihat adakah file di partisi tempat Windows diinstall yang bisa dihapus sehingga storage harddisk lebih lega?

Partisi Windows teridentifikasi sebagai /dev/sda2. Akan di-mount ke /media/hd0

$ mount /dev/sda2 /media/hd0
Windows is hibernated, refused to mount.
Falling back to read-only mount because the NTFS partition is in an
unsafe state. Please resume and shutdown Windows fully (no hibernation
or fast restarting.)

What? Windows is hibernate? Seingat penulis selalu tertib dalam menjalankan SOP shutdown (close semua window aplikasi yang terbuka, shutdown melalui menu, tidak ada warning apapun yang muncul di monitor). Jadi ya dianggap baik-baik saja. Ternyata tidak.

Menghapus file berdasarkan pencarian

Misalkan akan menghapus semua file berekstensi .rtf di direktori /tmp. Pada direktori /tmp terdapat banyak direktori dan file lainnya. File yang akan dihapus hanya pada direktor induk, tidak termasuk subdirektorinya (maxdepth=1).

$ find /tmp -maxdepth 1 -name *.rtf -delete

Membuat file csv

File csv merupakan file yang umum digunakan sebagai file data. Mudah dalam pembuatannya. Begitu juga dengan aksesnya. Bisa dibuat dengan text editor, spreadsheet software maupun statistical software. Pada kesempatan kali ini tidak menggunakan statistical software seperti R.

Membuat file csv dengan text editor

Prinsip pembuatan adalah :

  1. Antar kolom dipisahkan oleh tanda koma (,)
  2. Kolom pertama (umumnya) sebagai header atau nama/judul kolom
  3. Antar baris dipisahkan oleh enter
  4. Angka dituliskan seperti biasanya
  5. Teks/string dituliskan dalam tanda kutip (" atatu ‘)

Contoh, data kasus malaria tahun 2019 terdiri atas 2 kolom, yaitu provinsi dan jumlah.

Menghapus file dari tar

Untuk menghapus file Screenshot_2020-08-06_08-31-22.png yang ada dalam screenshot.tar.xz, caranya

$ tar f screenshot.tar.xz --delete Screenshot_2020-08-06_08-31-22.png

Menambah file archive tar

Untuk menambahkan file ke dalam tar archive mudah. Gunakan opsi -r atau –append pada command tar.

Misalkan, file photo_2020-08-22_19-03-32.jpg yang ada di ~/Documents akan dimasukkan atau ditambahkan ke dalam file archive screenshot.tar.xz

$ tar rf screenshot.tar.xz photo_2020-08-22_19-03-32.jpg

Atau

$ tar f screenshot.tar.xz --append photo_2020-08-22_19-03-32.jpg

Apabila file photo_2020-08-22_19-03-32.jpg ingin langsung dihapus dari lokasi aslinya setelah ditambahkan ke tar, beri opsi –remove-files

$ tar f screenshot.tar.xz --append --remove-files photo_2020-08-22_19-03-32.jpg

Mengetahui isi file tar archive

Catatan ini merupakan lanjutan dari sebelumnya yang membuat tar archive. Kali ini tentang bagaimana mengetahui apa saja file ada di dalam archive tersebut tanpa harus mengekstrak.

Contoh, terdapat file screenshot2.tar.xz. Untuk mengetahui apa saja isinya

$ tar tvf screenshot2.tar.xz
-rw-r--r-- user1/users 580563 2020-07-15 10:17 Screenshot_2020-07-15_10-17-33.png
-rw-r--r-- user1/users 851743 2020-08-03 10:31 Screenshot_2020-08-03_10-31-47.png
-rw-r--r-- user1/users   9958 2020-08-04 16:33 Screenshot_2020-08-04_16-33-18.png
-rw-r--r-- user1/users 822389 2020-08-06 08:23 Screenshot_2020-08-06_08-22-59.png
-rw-r--r-- user1/users 737008 2020-08-06 08:31 Screenshot_2020-08-06_08-31-22.png
-rw-r--r-- user1/users 243660 2020-12-04 18:44 Screenshot_2020-12-04_18-44-18.png
-rw-r--r-- user1/users 122966 2021-01-12 01:21 Screenshot_2021-01-12_01-21-31.png

Dapat diketahui bahwa file screenshot2.tar.xz berisi 7 file png screenshot sebagaimana tersebut di atas.

Membuat archive tar

Terdapat file sebagai berikut:

Screenshot_2020-07-15_10-17-33.png
Screenshot_2020-08-03_10-31-47.png
Screenshot_2020-08-04_16-33-18.png
Screenshot_2020-08-06_08-22-59.png
Screenshot_2020-08-06_08-31-22.png
Screenshot_2020-12-04_18-44-18.png
Screenshot_2021-01-12_01-21-31.png

Ketujuh file tersebut akan disatukan dalam 1 archive dengan nama file screenshot.tar.gz.

$ tar cvf screenshot.tar.gz Screen*
Screenshot_2020-07-15_10-17-33.png
Screenshot_2020-08-03_10-31-47.png
Screenshot_2020-08-04_16-33-18.png
Screenshot_2020-08-06_08-22-59.png
Screenshot_2020-08-06_08-31-22.png
Screenshot_2020-12-04_18-44-18.png
Screenshot_2021-01-12_01-21-31.png

Penjelasan command

  • tar : manajemen archive yang digunakan aalah tar
  • c : wajib dituliskan untuk create atau membuat archive
  • v : opsi untuk verbose, menampilkan list file yang diproses
  • f : wajib dituliskan dalam semua penggunaan tar karena f adalah file, identifier untuk file yang akan diproses
  • screenshot.tar.gz : nama file archive. Ekstensi bisa .tar, .tar.gz, atau .tar.xz. Ketika ekstensi ini sering dipakai di dunia open source.
  • Screen* : file yang akan di-archive. Karena filenya banyak dan mempunyai kemiripan pola maka digunakan regex agar lebih praktis. File ini juga bisa dituliskan satu persatu.

Menggunakan rsync

Kegunaan rsync

rsync berguna untuk transfer file secara efisien. Dibandingkan dengan cp atau mv, rsync memiliki keunggulan :

  1. Bebas pilih-pilih file maupun direktori yang akan ditransfer karena ada fitur include dan exclude
  2. Apabila gagal, misalnya karena storage penuh atau “kecelakaan” salah klik sehingga ter-close, dapat dilanjutkan tanpa mengulang dari awal sehingga waktunya tentu lebih cepat

Dibandingkan wget, rsync mendukung penggunaan wildcard dan secara default rsync resumeable.

Akan dilakukan transfer/copas semua yang ada di /media/hd0 ke /media/hd1

Memisahkan halaman PDF

Kadang kita perlu mengambil beberapa halaman dari e-book atau sejenisnya yang bertipe pdf. Kita bisa gunakan pdfjam. Misalkan akan mengambil halaman 10-21 dari file buku.pdf.

pdfjam buku.pdf '10-21'

Deteksi duplikasi file

Walau sudah ada tools yang secara langsung mengetahui duplikasi file di linux, saya lebih suka menggunakan tools bawaan Slackware. Tools yang umum digunakan antara lain fslint, fdupes atau jdupes. Adapun tools yang biasa saya gunakan

  1. sha512sum
  2. awk
  3. uniq
  4. grep

Misalkan, akan mencari adakah duplikasi file di folder Downloads. Pertama, catat dulu hash-nya. Di sini saya gunakan sha512. Kumpulan sha512 tersebut disatukan dalam file downloads.sha512. File ini terdiri dari 2 kolom. Kolom pertama berisi hash, sedangkan kolom kedua nama filenya.

Melihat isi file zip

Menggunakan linux terutama slackware membuat pekerjaan lebih ringan dan efisien. Suatu ketika diberikan sebuah file terkompresi zip yang misterius. Misterius karena ukurannya besar dan konon kata empunya file tersebut ngehang saat akan dibuka di komputer dengan sistem bukan slackware juga bukan linux. Dan ketika dibuka di slackware ketahuanlah nama “penduduk” zip tersebut.

zip -sf namafile.zip
# atau
less namafile.zip

Rename Banyak File Sekaligus

Tak terasa ternyata sudah lebih dari 3 bulan tidak posting. Mengapa? Sibuk? Kesibukan sebenarnya seperti biasa. Tidak ada peningkatan kesibukan secara signifikan. Lalu mengapa? Alasannya simpel. Karena semua kegiatan berkomputer baik-baik saja. Tidak ada masalah. Biasanya saya menulis di sini ketika saya menghadapi masalah terkait penggunaan komputer. Nah, kali ini masalahnya adalah saya menemukan banyak file yang namanya tidak sesuai dengan standar saya.

Contoh, adik-adik asisten anatomi mengirimkan softcopy materi asistensi. Penamaan file yang diberikan adik-adik adalah berawalan dengan MC untuk materi systema musculoskeletale. Saya ingin melakukan rename semua file tersebut yang semula berawalan MC menjadi berawalan Asistensi Anatomi Syst Musculoskeletale. Perubahan nama banyak file dengan nama yang cukup panjang tentu saja menyita waktu. Sebenarnya ini masih sangat mendingan, hanya 6 file. Rename satu-persatu sebenarnya tidak masalah juga. Tapi bagaimana kalau kasus serupa jumlah filenya puluhan, ratusan bahkan ribuan? Era industri 4.0 semakin menuntut efisiensi waktu. Efisiensi waktu ini berdampak pada efisiensi tenaga, baik itu tenaga brainware maupun komputernya yang kemudian mengakibatkan efisiensi biaya.

Ekstrak File .tar.gz

Kemarin di grup facebook Ubuntu Indonesia ada yang bertanya yang intinya

Bagaimana cara install file .tar.gz?

File dengan ekstensi tar.gz adalah file kompresi/arsip. ‘Saudara’ dari tar.gz yang juga sering dijumpai adalah [zip]({% post_url 2015-05-13-ekstrak-file-zip %}). Atau, bagi yang sebelum memakai linux sudah sangat familiar dengan Windows, tar.gz ini mirip dengan rar.

Nah, file kompresi ini bukanlah file installer, tetapi bisa jadi mengandung file installer. File installer di linux ada berbagai macam ekstensinya, contoh deb, rpm, tgz, dan sh. Tiap file installer itu mempunyai cara install yang beda. Untuk menginstallnya tentu saja tergantung dari isi file tar.gz itu tadi.