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

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

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

 rm -rfv <myfile> 

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

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

 rm -rf <myfile> 

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

  • Безопасный поиск и удаление файлов
  • Что эквивалентно rm `find lib / -name * .swp` без find?
  • Как удалить файл с помощью команды mv?
  • удалить каталог со специальным символом в имени файла
  • Не удается удалить определенные каталоги в определенном родительском каталоге
  • Как удалить все файлы в каталоге?
  • Почему `cp` и` rm` обрабатывают каталоги отдельно?
  • Как удалить папки, созданные с именами дат 2016-04-03 до 2016-10-4
  • 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 } 
    Interesting Posts

    сценарий оболочки для создания каталогов, подкаталогов и файлов по шаблону

    Linux / GParted может видеть таблицу разделов, но dd bs = 512 count = 1 не может

    10G сетевой сетевой адаптер с отключенным / переполнением

    dpkg: error: невозможно удалить архитектуру «i386», используемую в настоящее время базой данных

    Не может быть дано указание свернуть блоки строк

    Не удается SSH для VPS. После ifup?

    Использовать трекер от поставщика поиска гномов (для поиска в «Деятельности») | GNOME 3.16

    Как начать графический интерфейс перед входом в систему?

    найти «выражение» в каждом файле каталога рекурсивно

    Важные сценарии, полезные для системного администратора Linux

    Чтение из последовательного порта самым простым способом?

    Как удалить все дубликаты жестких ссылок в файл?

    Десятичный тест оболочки Bash

    разделение текстовых файлов в соответствии с регулярным выражением

    Почему root не имеет / usr / local в пути?

    Linux и Unix - лучшая ОС в мире.