Я использую сдвиг для той же цели. Вот небольшой пример, взятый из здесь :
#!/bin/bash
# This script can clean up files that were last accessed over 365 days ago.
USAGE="Usage: $0 dir1 dir2 dir3 ... dirN"
if [ "$#" == "0" ]; then
echo "$USAGE"
exit 1
fi
while (( "$#" )); do
if [[ $(ls "$1") == "" ]]; then
echo "Empty directory, nothing to be done."
else
find "$1" -type f -a -atime +365 -exec rm -i {} \;
fi
shift
Используйте параметр -x
(одна файловая система):
du -cshx /
Это указывает du
рассматривать только каталоги /
], которые находятся в той же файловой системе.
Есть два варианта решения вашей проблемы:
Использование опции --exclude
, которая заставляет du
игнорировать заданный путь.
du --human-readable --exclude=/home
Использование опции --one-file-system
говорит du
не заходить в другую файловую систему.
du --human-readable --one-file-system /