Команда AIX 'rm' не имеет параметра '-v' для подробного вывода

Команда AIX rm не имеет параметра -v для подробного вывода, как указано в документации IBM .

Обычно я запускал (в Linux)

 rm -rfv <myfile> 

to ( r ) и ( f ) принудительно удалять файлы и получать подробный вывод.

Поскольку я могу работать только в AIX:

 rm -rf <myfile> 

Как я могу получить подробный вывод, эхом в терминал?

  • Найти файлы внутри подкаталогов с разными именами (чтобы удалить их с помощью mtime)
  • Я случайно вышел из vim с: x! ~, И теперь моя ~ появляется по другому пути
  • Удалите папку с тем же именем, что и переменная среды
  • Синтаксис для команды rm. Обеспокоенный использованием опции -r
  • как я могу рекурсивно удалять пустые каталоги в моем домашнем каталоге?
  • Что такое обычный файл?
  • Удалите все * .mp4 и * .zip, но некоторые файлы
  • Почему не удается root удалить файл?
  • 4 Solutions collect form web for “Команда AIX 'rm' не имеет параметра '-v' для подробного вывода”

     find myfile -depth -exec sh -c 'for f do rm -rf -- "$f" && printf "Removed '%s'\n" "$f" done' sh {} + 

    Или:

     find myfile -depth -exec rm -rf -- {} \; \ -exec printf "Removed '%s'\n" {} \; 

    может быть началом.

    Если у вас есть доступ к GNU find , возможно, как gfind или as /opt/gnu/bin/find :

     gfind myfile -delete -printf 'Removed '%p'\n' 

    будет намного более эффективным, так как он не будет запускать одну (или более) команду для каждого файла в качестве других.

    Но если у вас есть gfind , у вас может также быть grm

    Параметр rm -e AIX аналогичен GNU rm 's -v , с man страницы:

     -e Displays a message after each file is deleted. 

    Использование этого результата дает следующий результат:

     # rm -e test.txt rm: Removing test.txt 

    Сделайте rm в функцию, добавив это в файл инициализации вашей оболочки (предполагая синтаксис, похожий на Bourne):

     vrm() { for f do rm -- "$f" && printf 'Deleted %s\n' "$f" done } 

    Затем вы можете называть его vrm foo bar baz .

    поскольку @terdon пропустил флаг -r:

     #!/bin/bash vrrm(){ for f in "$@"; do if [ -d "$f" ]; then gfind "$f" -type f -print0|tee >(gxargs -0 rm) |gxargs -0 echo -- removing file gfind "$f" -depth -type d -print0|tee >(gxargs -0 rmdir)|gxargs -0 echo -- removing directory else rm "$f" && echo Deleted $f fi done } 
    Linux и Unix - лучшая ОС в мире.