(рекомендуется отредактировать публикацию, где сценарий завершен и представлен в виде кода; например, ведущий # отсутствует; примечание: инвертируйте сценарий и нажмите кнопку {})
Как показано, сценарий выглядит несколько странный; рекомендую проверить такие вещи, как правильность счетчика аргументов в cmd-строке, а затем правильность аргументов $1
и $2
; выражение /$1/*
указывает, что вы хотите повторить тот же поиск на основе подстановочного знака *
результата всего в пределах абсолютного пути /$1
, но завершающий /*
не нужен (find
обычно спускается в подкаталоги) , в то время как каталог, переданный в find
, является инвариантным путем abs /$2
. Вот версия с угаданными элементами:
#!/bin/bash
[ $# -ne 2 ] && { echo Usage: ${0##*/} dir user 1>&2; exit 1; }
# search the unmodified dir $1 for any file owned by $2 with size 0 and run an interactive delete
find $1 -user $2 -type f -size 0 -exec rm -i {} \;