Псевдоним опций команды

Фактическая ошибка из tarв последней строке (, которая, я думаю, была вашим основным вопросом ), связана с тем, что вы не указали фактическое действие. fуказывает, что следует имя файла. vподробно говорит о том, что нужно что-то сделать. zговорит, что файл сжат (и в большинстве версий tarявляется избыточным ).

Думаю, вы хотелиt-перечислить файлы. В этом случае вам понадобится:

tar -tvzf home-10-07-2017.tar.gz
0
14.08.2019, 21:34
1 ответ

Напишите функцию оболочки или сценарий. Единственная проблема заключается в том, насколько вы заботитесь о крайних случаях. Если тебе все равно, то

 #!/bin/bash
 args=()
 while (($# > 0))
 do
      case "$1" in
      ("-mn") args=("${args[@]}" "-mindepth") ;;
      ("-mx") args=("${args[@]}" "-maxdepth") ;;
      (*) args=("${args[@]}" "$1") ;;
      esac
      shift
 done
 exec find "${args[@]}"

Если вам не все равно, используйте

      ("-mn") args=("${args[@]}" "-mindepth" "$2") ; shift ;;

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

  find / -name -mn -print

в

  find / -name -mindepth -print

Не называйте этот скрипт find, возможно, fnd, так как он использует более короткие параметры, чем find, или myfind. Можно заставить его работать, если вы назовете его find, но, как упоминалось в комментариях, вы не можете изменить поведение стандартных программ.

0
28.01.2020, 03:21

Теги

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