Buat show show slash setelah direktori?


19

Bagaimana saya bisa membuat perintah find memperlihatkan garis miring setelah direktori? Misalnya, saya ingin dirtampil sebagai dir/ganti dir. saya menggunakanfind . -print

Jawaban:


10

Portabel:

find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print

Jika Anda ingin membuat daftar direktori dan file secara terpisah (Anda dapat menggabungkan output dengan menyortir):

{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort

Dengan GNU find, lihat jawaban Shawn J. Goff .

Jika Anda ingin mengambil risiko karakter yang tidak dapat dicetak rusak bahkan ketika tidak menghasilkan ke terminal, lihat jawaban ddeimeke .

Di zsh: print -rl -- **/*(DM)( Duntuk memasukkan file dot, Muntuk menambah /direktori after)


Perintah pertama tidak mencetak garis miring untuk saya, tetapi yang kedua tidak.
Steven

15
find . \( -type d -printf "%p/\n" , -type f -print \)

Ini menggunakan perintah printf untuk memformat nama direktori dan cetak standar untuk yang lain.


Saya terus kagum pada fleksibilitas menemukan.
Shawn J. Goff

1
Catatan yang -printfkhusus untuk menemukan GNU.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban bagus. Saya suka bagaimana findargumen posisi memungkinkannya melakukan output lanjutan seperti ini. Namun, perhatikan bahwa tanpa spasi di sekitar koma, itu tidak akan berfungsi.
jimp

1
Berdasarkan jawaban ini dan Gilles ', saya datang dengan versi sederhana berikut:find . -type d -printf '%p/\n' -or -print
Teresa e Junior

8

Mungkin

find . -print0 | xargs -0 ls -Fd

juga merupakan pilihan.

Dari halaman manual Solaris:

-F Menandai direktori dengan garis miring (/), pintu dengan tanda lebih besar dari tanda (>), file yang dapat dieksekusi dengan tanda bintang (*), FIFO dengan bilah garis vertikal (|), tautan simbolis dengan tanda " at "sign (@), dan AF_UNIX soket keluarga alamat dengan tanda trailingequals (=). Mengikuti symlink yang disebut operan.


@Gilles: Terima kasih untuk "d" ;-)
ddeimeke

ini meningkatkan jumlah syscalls
Paweł Polewicz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.