Sortir file dalam direktori secara rekursif berdasarkan tanggal modifikasi terakhir
Saya telah memodifikasi banyak file di direktori saya ingin tahu file apa itu dengan menyortirnya berdasarkan tanggal modifikasi terakhir dan saya ingin beberapa ekstensi dikecualikan.
di direktori svn saya juga punya banyak file .svn yang tidak ingin saya tampilkan
Jawaban:
akan memberi Anda sesuatu seperti
sumber
find -not -iname '*.ext'
.Jika Anda ingin meratakan struktur direktori (dengan demikian mengurutkan berdasarkan tanggal pada semua file di semua direktori, mengabaikan direktori apa file berada di) pendekatan
find
-ro yang disarankan oleh @yeti adalah cara untuk pergi. Jika Anda ingin mempertahankan struktur direktori, Anda dapat mencobayang berdasarkan jenis direktori.
sumber
Di bash, jalankan
shopt -s globstar
dulu. Di ksh93, jalankanset -o globstar
dulu. Di zsh, Anda sudah siap.Ini akan mengembalikan kesalahan jika Anda memiliki begitu banyak file yang melebihi batas panjang perintah pada sistem Anda. Di zsh, Anda dapat menggunakan ini sebagai gantinya:
sumber
Dengan asumsi Anda hanya menemukan GNU, coba:
sumber
find
's-printf
pilihan untuk menghindari memohon proses terpisah (atau beberapa, tergantung pada jumlah file). Lihat jawaban saya sebagai contoh.stat
kesempatan dan pertunjukan-exec ... +
. Betulkah! Terkadang saya berpikir,stat
patut mendapat perhatian lebih ... dan tidak seorang pun boleh mengambil resep dari sini tanpa membaca bahan-bahannya dan memikirkan konsekuensinya ...-printf
...find
tidak-printf
, Anda dapat menggunakan-exec sh -c 'printf...'
untuk mendapatkan banyak fungsi yang sama. Itu akan mencakup akses ke$(pwd)
jalur yang sepenuhnya memenuhi syarat juga.stat
. Jadi kadang-kadang saya hanya ingin mengarahkan perhatian padastat
... Saya pikirstat
layak untuk itu ...Untuk daftar nama file dengan kuat hanya menggunakan alat GNU terbaru:
sumber
Ini menghindari masalah daftar argumen karena satu-satunya argumen yang
ls
akan diterima adalah nama direktori yang ingin Anda daftarkan. Anda dapat melakukan ini dengan apa pun yang Anda suka.Shell hanya
. sources
itu|pipe
sebagai shell script - itu proses yang sama dan tidak memiliki masalah Anda dapat menemukan ketikaexecve
disebut.Dalam hal apa pun - yang di atas hanya tiga kedalaman yang dapat disesuaikan dengan mengubah
maxdepth
. Ini juga mendalam dulu - jadi Anda bekerja mundur ke direktori saat ini daridepth
.Anda mungkin memperhatikan Anda juga mendapatkan
$LSCOLORS
- di mesin saya itu juga menyediakan kolom tercetak rapi dan segala sesuatu yang Anda inginkanls
- atau, dalam hal ini, apa pun yang dapat Anda bayangkan akan Anda lakukan dengan. source.
TANPA SVN
Sekali lagi, ini akan melakukan apa pun yang Anda harapkan
ls
. Jadi menyembunyikan.svn
file semudah mengubahls
baris menjadi:Atau jika Anda ingin melihat
svn
ekstensi di setiap folder TETAPI./svn
Anda bisa mengubahnya sehingga seluruh perintah terlihat seperti ini:Secara pribadi, saya suka dengan ls
-s
dan, jika Anda peduli,-u
akan mengurutkan berdasarkan waktu akses daripada waktu mod.sumber
Ini akan menampilkan semua
files
di<dir>
dengan makhluk paling atas tertua dimodifikasiDan dengan ini modifikasi terbaru adalah yang teratas
Perhatikan bahwa ini hanya berfungsi jika daftar nama file tidak melebihi batas panjang baris perintah total pada sistem Anda.
sumber
xargs -0
(dalam kedua kasus).xargs -print0
setara denganxargs -p -r -i -n -t -0
atauxargs -inprt0
atauxargs -0ntrip
, yang mungkin bukan yang Anda maksudkan.