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

REJECT на OUTPUT не имеет никакого смысла; a REJECT возвратит пакет ICMP, который должен был бы пересечь сеть.

Добавьте новое -j LOG как Ваше последнее правило (поэтому перед DROP политика) для наблюдения, что получает это далеко в OUTPUT цепочка.

2
07.08.2015, 18:45
4 ответа

Сделать rm в функцию путем добавления этого к файлу инициализации оболочки (принимающий подобный Границе синтаксис):

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

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

1
27.01.2020, 22:06
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 или как /opt/gnu/bin/find:

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

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

Но если Вы имеете gfind, Вы можете также иметь grm...

2
27.01.2020, 22:06
  • 1
    +1. Я не знал, что точка с запятой была дополнительной, когда в слове опущен. –  Dimitre Radoulov 29.11.2013, 10:28
  • 2
    @DimitreRadoulov, это не является только дополнительным, но и не запрещается POSIX. И это не будет работать с ним в Оболочке Bourne, например. Синтаксис выше является самым портативным способом циклично выполниться по позиционным параметрам. in-ulm.de/~mascheck/various/bourne_args для –  Stéphane Chazelas 29.11.2013, 13:18

так как @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
}
-2
27.01.2020, 22:06
  • 1
    Нет -print0 или -0 на AIX. Отметьте это [ -d возвратите true для символьных ссылок на каталоги. -type f регулярные файлы только, это не противоположность -type d. echo расширяется escape-последовательности так не могут использоваться для произвольных данных. AIX sh не поддерживает >(). Существует отсутствие --. –  Stéphane Chazelas 27.11.2013, 21:16
  • 2
    @StephaneChazelas зафиксирован. –  hildred 28.11.2013, 02:21

AIX'S Опция -E аналогичен GNU RM -V , из PAGE :

-e
    Displays a message after each file is deleted.

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

# rm -e test.txt
rm: Removing test.txt
2
27.01.2020, 22:06

Теги

Похожие вопросы