Как удалить определенный файл в Linux, если его размер равен 0. Я хочу выполнить это в crontab без каких-либо дополнительных script.
l filename.file | grep 5th-tab | not eq 0 | rm
Что-то вроде этого?
Как удалить определенный файл в Linux, если его размер равен 0. Я хочу выполнить это в crontab без каких-либо дополнительных script.
l filename.file | grep 5th-tab | not eq 0 | rm
Что-то вроде этого?
Это приведет к удалению всех файлов в каталоге (и ниже), размер которого равен нулю.
find /tmp -size 0 -print0 |xargs -0 rm
Если вам нужен конкретный файл,
if [ ! -s /tmp/foo ] ; then
rm /tmp/foo
fi
вы хотели бы использовать find:
find . -size 0 -delete
Поиск и удаление пустых файлов в текущем каталоге и подкаталогах:
find . -type f -empty -delete
-type f
необходимо, так как также каталоги отмечены как нулевые.
Точка .
(текущий каталог) - это начальный каталог поиска. Если у вас есть поиск GNU (например, не Mac OS), вы можете опустить его в этом случае:
find -type f -empty -delete
Если файлы для поиска не указаны, используется текущий каталог (.).
Для этого вы можете использовать команду find
. Мы можем сопоставлять файлы с помощью -type f
и сопоставлять пустые файлы с помощью -size 0
. Затем мы можем удалить совпадения с помощью -delete
.
find . -type f -size 0 -delete
Это работает для простой BSD, поэтому он должен быть универсально совместим со всеми вкусами. Ниже, например, в pwd
(.
)
find . -size 0 | xargs rm
В Linux команда stat (1) полезна, когда вам не нужно найти (1):
(( $(stat -c %s "$filename") )) || rm "$filename"
Команда stat здесь позволяет нам просто получить размер файла, что -c %s
(см. man-страницы для других форматов). Я запускаю программу stat и фиксирую ее вывод, что $( )
. Этот результат показан численно, что внешний (( ))
. Если для размера указан ноль, то это FALSE, поэтому выполняется вторая часть OR. Без нуля (непустой файл) будет TRUE, поэтому rm не будет выполнен.
Для нерекурсивного удаления (с использованием du и awk):
rm `du * | awk '$1 == "0" {print $2}'`
find . -type f -empty -exec rm -f {} \;