GNU/Linux >> Belajar Linux >  >> Linux

Cara Menghapus File yang Terdaftar di File Lain di Linux

Di bawah distribusi sistem operasi Linux, apa pun bisa terjadi. Lingkungan sistem operasi sumber terbuka seperti itu membawa Anda melalui roller coaster tentang apa pun yang perlu diketahui tentang sistem operasi.

Salah satu aspek kunci yang sangat menentukan kebutuhan dan kebutuhan berkelanjutan untuk sistem operasi adalah manajemen file. Tidak ada sistem operasi yang menangani manajemen file lebih baik daripada Linux. Baik Anda ingin membatasi, membuat, atau meningkatkan keamanan sistem dan file pengguna Anda, Linux memberikan pengalaman dan kinerja pengguna terbaik.

Terminal Linux atau antarmuka baris perintah adalah lingkungan yang fleksibel untuk memanipulasi file melalui perintah yang terkait dengan membuat, mengganti nama, memindahkan, dan menghapus file. Bagaimana jika Anda mempelajari tweak manipulasi file lainnya?

Artikel ini akan memandu kita dalam menghapus file yang terdaftar di file lain di lingkungan sistem operasi Linux.

Skenario Praktis

Kami akan membuat pohon direktori dummy untuk referensi. Perhatikan struktur pohon direktori berikut:

$ tree

Dari tangkapan layar di atas, TestDel adalah direktori induk dengan jalur absolutnya adalah /home/dnyce/TestDel .

$ pwd

TestDel direktori memiliki empat direktori lain (docx_files , jpg_file , file_pdf , dan xml_files ) di dalamnya diisi dengan file dengan format berbeda (docx, jpg, pdf, dan xml).

Sekarang, jika kita ingin menghapus beberapa file ini, pertama-tama kita perlu membuat daftar path absolutnya dalam sebuah file. Kami akan membuat file teks bernama tobeDeleted.txt dan tambahkan jalur ke beberapa file ini.

$ sudo nano tobeDeleted.txt

Sekarang setelah kita memiliki file dari mana file yang terdaftar akan dihapus, sekarang kita dapat melihat metodologi yang layak yang akan memulai dan menjalankan penghapusannya.

Metode 1:Menggunakan Perintah xargs

Di bawah xargs pendekatan, masukan dari stdin dibaca oleh xargs perintah dan kemudian dikonversi untuk menggunakan argumen yang dapat dikaitkan dengan perintah lain.

Untuk menghapus file yang tercantum dalam tobeDeleted.txt di atas file, kami akan menerapkan dan menjalankan xargs perintah dengan cara sebagai berikut. xargs perintah harus diarahkan ke jalur absolut tobeDeleted.txt berkas teks.

$ xargs -I{} rm -r "{}" < /home/dnyce/tobeDeleted.txt 

Perintah membaca jalur absolut dari file yang terdaftar dan kemudian memeriksa lokasi sebenarnya untuk penghapusan dimulai.

Penampung "{}" mengutip jalur nama file yang terdaftar untuk rm -r perintah untuk menghapus setelah -I mengganti string dengan jalur nama file berikutnya yang akan dihapus.

Sekarang kita dapat melanjutkan dan menjalankan perintah pohon untuk memastikan bahwa file yang terdaftar benar-benar dihapus dengan output perintah cat berikut sebagai titik referensi.

$ cat tobeDeleted.txt
$ tree /home/dnyce/TestDel

Seperti yang Anda lihat, kami memiliki 10 file tersisa dari 13 file awal.

Metode 2:Menggunakan Perintah sed

Pendekatan satu baris sed yang ringkas akan dengan mudah membantu kami menghapus file yang terdaftar di file lain. Perbarui tobeDeleted.txt dengan pendatang baru.

$ sudo nano tobeDeleted.txt 

sed perintah yang akan digunakan untuk menghapus file yang ditampilkan pada tangkapan layar di atas akan terlihat seperti berikut:

$ sed 's/.*/rm -r "\0"/' /home/dnyce/tobeDeleted.txt

Pengganti "\0" menunjuk ke jalur nama file untuk dihapus dengan rm -r perintah di mana s memperlakukan jalur file sebagai item terpisah dalam daftar dengan berbagai ekstensi file (.*) .

Seperti yang mungkin telah Anda perhatikan, sed perintah tidak melakukan penghapusan file yang sebenarnya untuk kami, melainkan menghasilkan perintah penghapusan yang sesuai yang dapat kami jalankan dengan nyaman.

Jalankan kembali pohon perintah untuk memastikan bahwa file dihapus dengan perintah cat keluaran sebagai titik referensi.

$ cat /home/dnyce/tobeDeleted.txt
$ tree /home/dnyce/TestDel

Kami berhasil menghapus file yang terdaftar.

Metode 3:Menggunakan Perintah awk

Sekali lagi, perbarui tobeDeleted.txt file dengan pendatang baru.

$ sudo nano tobeDeleted.txt 

awk perintah untuk dieksekusi adalah sebagai berikut:

$ awk -v q='"' '$0 = "rm -r " q $0 q' /home/dnyce/tobeDeleted.txt

-v menetapkan variabel q dengan nilai placeholder " dan '$0 = "rm -r " q $0 q' menghasilkan perintah yang dihasilkan untuk menghapus setiap file yang terdaftar.

Sebagaimana dicatat, awk perintah tidak juga melakukan penghapusan sebenarnya dari file yang terdaftar untuk kita tetapi menghasilkan perintah yang dapat kita gunakan:

Jalankan pohon perintah yang mengacu pada perintah kucing output untuk mengonfirmasi penghapusan file.

$ cat /home/dnyce/tobeDeleted.txt
$ tree /home/dnyce/TestDel

Anda telah berhasil menambahkan keterampilan baru ke rutinitas manajemen file Linux Anda.


Linux
  1. Cara Menghapus File dan Direktori di Linux dari Command Line

  2. Bagaimana Anda menghapus file yang lebih lama dari tanggal tertentu di Linux?

  3. Bagaimana cara menghapus file .fuse_hidden*?

  1. Cara Mengonversi File ke Encoding UTF-8 di Linux

  2. Cara Menghapus File Root Mail (Kotak Surat) di Linux

  3. Cara Melihat atau Mengubah ACL di File Linux

  1. Cara memindahkan file di Linux

  2. Cara mengekstrak file .gz dan .tar.gz di Linux

  3. Cara Menggunakan Netcat untuk Mentransfer File di Linux