GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mendaftar file dengan path lengkap di Linux?

Gunakan find memerintah. Secara default, ini akan secara rekursif mencantumkan setiap file dan folder yang turun dari direktori Anda saat ini, dengan jalur (relatif) lengkap.

Jika Anda menginginkan jalur lengkap, gunakan:find "$(pwd)" .

  • Jika Anda ingin membatasinya hanya untuk file atau folder, gunakan find -type f atau find -type d , masing-masing.
  • Jika Anda ingin berhenti pada kedalaman direktori tertentu, gunakan find -maxdepth 2 , misalnya.

Baca Menemukan Berkas untuk manual ekstensif tentang GNU find , yang merupakan default di Linux.


$ pwd
/home/victoria

$ find $(pwd) -maxdepth 1 -type f -not -path '*/\.*' | sort
/home/victoria/new
/home/victoria/new1
/home/victoria/new2
/home/victoria/new3
/home/victoria/new3.md
/home/victoria/new.md
/home/victoria/package.json
/home/victoria/Untitled Document 1
/home/victoria/Untitled Document 2

$ find . -maxdepth 1 -type f -not -path '*/\.*' | sed 's/^\.\///g' | sort
new
new1
new2
new3
new3.md
new.md
package.json
Untitled Document 1
Untitled Document 2

Catatan:

  • . :folder saat ini
  • hapus -maxdepth 1 untuk menelusuri secara rekursif
  • -type f :cari file, bukan direktori (d )
  • -not -path '*/\.*' :jangan kembalikan .hidden_files
  • sed 's/^\.\///g' :hapus ./ yang diawali dari daftar hasil

Untuk kelengkapan, ls -lR / perintah akan mencantumkan nama setiap file, jenis file, bit mode file, jumlah tautan keras, nama pemilik, nama grup, ukuran, dan stempel waktu setiap file (yang Anda miliki izin untuk mengaksesnya) dari direktori root ke bawah. (l adalah untuk daftar panjang yaitu semua info itu, R adalah mengulang melalui direktori, / dimulai dari root sistem file.)

Ada beberapa parameter untuk membuat info keluaran lebih dekat ke dir /S /A , tetapi saya harus mengakui bahwa saya tidak dapat menemukan cara menerjemahkan /B .

Untuk info yang berguna, saya akan mencoba:ls -lAFGR --si /

dimana

  • l =daftar panjang (seperti yang disebutkan di atas)
  • A =hampir semua file (tidak menyertakan . dan .. di setiap direktori, tetapi menampilkan semua file tersembunyi)
  • F =tampilkan indikator file, (salah satu dari * untuk file exe, / untuk direktori,@ untuk tautan simbolik, | untuk FIFO, = untuk soket, dan > untuk di dalam ruangan)
  • G =jangan tampilkan info grup (hapus ini jika ingin melihatnya)
  • R =daftar direktori (subdirektori) dan
  • secara rekursif
  • --si =tampilkan ukuran file dalam format yang dapat dibaca manusia misalnya format 1M (di mana 1M =1000B)

ls dapat memberikan sinopsis direktori dan file yang lebih mudah dibaca di dalam direktori tersebut, seperti find keluaran mungkin sulit untuk dipindai ketika file berada dalam struktur direktori yang sangat panjang (mencakup beberapa baris). Konsekuensinya adalah bahwa setiap file terdaftar dengan sendirinya (yaitu tanpa informasi jalur direktori) dan Anda mungkin harus kembali beberapa halaman/layar untuk menemukan direktori tempat file tertentu berada.

Selain itu, find tidak berisi informasi /A pada perintah DIR. Saya telah menyarankan sejumlah atribut dalam perintah yang saya tunjukkan (yang secara kebetulan menunjukkan kegunaan ekstra yang Anda dapatkan dari linux melalui sistem berpemilik tertentu), tetapi jika Anda membaca man dan info halaman di ls , Anda akan dapat melihat apa yang harus disertakan atau tidak.


Linux
  1. Cara Menemukan File Dengan Izin SUID dan SGID di Linux

  2. Cara Menemukan File dengan Perintah fd di Linux

  3. Bagaimana saya bisa membuat daftar file dengan jalur absolutnya di Linux?

  1. Temukan file dan direktori di Linux dengan perintah find

  2. Daftar file menggunakan perintah ls di Linux dengan path lengkap

  3. Bagaimana cara menghapus file dengan nama ini di linux:-]???????q

  1. Cara menemukan File di Linux

  2. Cara menemukan file format dos di sistem file linux

  3. Bagaimana menemukan semua file yang diakhiri dengan .rb dengan Linux?