Ini mungkin sesuatu yang mendasar tetapi saya tidak dapat membuatnya bekerja. Saya mencoba menggunakan DU untuk mendapatkan ukuran total file dikurangi direktori tertentu. Saya perlu mengecualikan satu direktori spesifik yang dipanggil uploads
tetapi tidak setiap direktori dipanggil uploads
. Sebagai contoh, struktur file saya terlihat sedikit seperti ini:
/store
/uploads
/junk_to_ignore
/more_junk_to_ignore
/user_one
/uploads
/user_two
Saya dapat menjalankan perintah berikut:
du -ch --exclude=uploads*
dan itu memberi saya ukuran file dikurangi semua direktori "unggahan". Namun, dalam mencoba mengecualikan direktori tertentu (dan semua sub-direktori) saya gagal. Saya sudah mencoba variasi:
du -ch --exclude=./uploads*
du -ch --exclude='/full/path/to/uploads/*'
tapi sepertinya tidak bisa memahaminya. Bagaimana cara mengecualikan direktori tertentu?
command-line
disk-usage
Akan
sumber
sumber
username: store$ du -ch --exclude=./uploads
bekerja (dengan dan tanpa wildcard) untuk saya, dari dalam direktori store. Apakah Anda menjalankan perintah itu dengan tepat dan dari dalam folder toko? Dan itu harus menjadi jalur relatif (yang menemukan melihat / mencetak), bukan absolut.Jawaban:
Anda hampir menemukannya :)
Perhatikan tidak ada tanda bintang di bagian akhir. Tanda bintang berarti semua subdirektori di bawah "unggah" harus dihilangkan - tetapi bukan file secara langsung di direktori itu.
sumber
du -sb --exclude=./relative/path/to/uploads
) tidak berfungsi untuk saya. Ini tidak:du -sb --exclude relative/path/to/uploads
du
. Milik saya (OSX) bahkan tidak punya--exclude
, malah-I mask
harus "Abaikan file dan direktori yang cocok dengan topeng yang ditentukan." Dalam contoh kerja Anda, Anda juga menghilangkan=
, membuat saya berpikir bahwa ini hanya versi Andadu
yang sedikitdu
berbeda.Untuk mengecualikan beberapa direktori, cukup lewati flag --exclude lagi.
sumber
du -ch --exclude={relative/path/to/uploads,other/path/to/exclude}
luar biasa untuk melewati sistem file virtual seperti itu
sumber
Jika Anda harus menggunakan MacOS, Anda menginstal GNU Coreutils dengan perintah berikut.
Sebagian besar perintah yang diinstal oleh Coreutils diawali oleh
g
, karena mereka memiliki BSD namesake yang sudah diinstal pada macOS. Maka Anda dapat melakukan hal berikut.sumber