Saya menggunakan rsnapshot untuk cadangan, yang menghasilkan serangkaian folder yang berisi file dengan nama yang sama. Beberapa file sulit ditautkan, sementara yang lain terpisah. Misalnya, hourly.1/file1
dan hourly.2/file1
mungkin sulit ditautkan ke file yang sama, sementara hourly.1/file2
dan hourly.2/file2
sepenuhnya merupakan file yang terpisah.
Saya ingin menemukan jumlah ruang yang digunakan oleh folder hourly.2
mengabaikan file yang merupakan tautan keras ke file hourly.1
. Jadi dalam contoh di atas, saya ingin mendapatkan ukuran file2, tetapi abaikan file1.
Saya menggunakan bash di linux, dan saya ingin melakukan ini dari baris perintah sesederhana mungkin, jadi tidak ada solusi grafis atau hanya OS-satunya yang lain tolong.
sumber
hourly2
, perintah Anda akan memproses jawaban yang salah.hourly.2
. Jika mereka disalin di sana, mereka tidak akan memiliki tautan tambahan dan perintah saya akan berfungsi. Jika mereka terkait erat, jelas itu akan gagal. Saya berasumsi file cadangan baru disalin.Jika Anda secara khusus menginginkan ukuran file yang ada di bawah
hourly.2
tetapi tidak di bawahhourly.1
, Anda dapat memperolehnya sedikit secara tidak langsungdu
. Jikadu
memproses file yang sama lebih dari satu kali (bahkan di bawah nama yang berbeda, yaitu tautan keras), itu hanya menghitung file pertama kali. Jadi yangdu hourly.1 hourly.2
dilaporkanhourly.2
adalah ukuran yang Anda cari. Jadi:(Bekerja pada sistem POSIX dan sebagian besar varian Unix lainnya. Diasumsikan bahwa nama direktori
hourly.1
tidak mengandung baris baru.)sumber
Seperti yang dikatakan @Gilles, karena
du
hanya menghitung hardlink pertama yang menunjuk ke inode yang sama yang dihadapinya, Anda dapat memberikannya direktori secara berturut-turut:Jika ada file dalam 'per jam.2' yang mereferensikan inode (alias file "asli") yang telah dirujuk dalam 'per jam.1', tidak akan dihitung.
sumber
$ du -hcs dirA dirB
Lebih simpel
Contoh
sumber
Membangun Awesomely BusyBox
find
datang tanpa-printf
dukungan. Berikut ini modifikasi jawaban @ grebneke :sumber