Утверждение «xargs rm; пропустить, если пусто» похоже на инструкцию командной строки, написанную на английском языке. Он состоит из двух частей: «xargs rm» и «пропустить, если пусто». Давайте разберемся:
-
“xargs rm”: эта команда используется в Unix-подобных операционных системах для удаления файлов или каталогов. Он принимает входные данные со стандартного ввода (stdin) и применяет команду «rm» к каждому элементу.
-
“пропустить, если пусто”: эта часть не является стандартной командой, а скорее инструкцией по добавлению условия к предыдущей команде. Предполагается, что команду «rm» следует пропустить, если нет элементов для удаления.
Основываясь на этой информации, вот несколько возможных интерпретаций и подходов для достижения желаемой функциональности:
Способ 1: использование команды find
find /path/to/files -type f -print0 | xargs -0 rm
Эта команда находит все файлы в указанном каталоге (/path/to/files) и передает их в качестве аргументов в xargs, который затем выполняет rmдля удаления каждого файла.
Метод 2: использование тестовой команды
if [ -n "$(ls -A /path/to/files)" ]; then find /path/to/files -type f -print0 | xargs -0 rm; fi
При таком подходе команда test([ -n "$(ls -A /path/to/files)" ]) проверяет, содержит ли каталог какие-либо файлы. Если да, то выполняется команда findдля удаления файлов.
Метод 3. Использование параметра -delete команды поиска
find /path/to/files -type f -delete
Эта команда напрямую использует опцию -deleteкоманды findдля удаления всех файлов в указанном каталоге.