Ошибка directory nonexistent, Nastya25, 11-Дек-15, 00:08 [смотреть все]При отладке скрипта на bash выдается сообщение, о том, что директория не существует. Не могу понять, что не так. Будьте добры, помогите, пожалуйста, разобраться, в чем ошибка. Заранее искренне благодарю. Текст скрипта: #!/bin/bash find . `pwd` -maxdepth 1 -type f -mtime -1 | xargs ls -at1 >> "$a" grep '[!.]*' "$a" >> "$b" cat $b exit 0 При отладке выводится сообщение: find . `pwd` -maxdepth 1 -type f -mtime -1 | xargs ls -at1 >> "$a" z.sh: 3:z.sh: cannot create : Directory nonexistent grep '[!.]*' "$a" >> "$b" z.sh: 4:z.sh: cannot create : Directory nonexistent
|
- Ошибка directory nonexistent, asavah, 02:25 , 11-Дек-15 (1)
- Ошибка directory nonexistent, asavah, 02:33 , 11-Дек-15 (2)
ЗЫ если я правильно понял что вы хотите ...find `pwd` -maxdepth 1 -type f -mtime -1 ! -name ".*"
- Ошибка directory nonexistent, Nastya25, 10:07 , 11-Дек-15 (3)
> А как вы в пустую переменную редиректом собрались выхлоп загонять? > При таком написании скрипта с cat-ами и ">>" $a и $b должны > быть предварительно определены как имена файлов > для начала на пальцах объясните что вы пытаетесь сделать, > а то в скрипте я вижу бред школьника неосилившего маны > матчасть: > http://www.tldp.org/LDP/abs/html/io-redirection.html > http://stackoverflow.com/questions/2559076/how-do-i-redirect... Если исправить вот так: #!/bin/bash a=$(find "`pwd`" -maxdepth 1 -type f -mtime -1 | xargs ls -at1) b=$(grep "'[!.]*'" "$a") cat $b exit 0 "для начала на пальцах объясните что вы пытаетесь сделать" Я пытаюсь получить список полных имен файлов текущей директории, модифицированных в течении суток. fing "`pwd`" ищу полные имена файлов -maxdepth 1 погружаюсь на одну директорию -type f ищу только файлы (без директорий) -mtime -1 время модификации текущие сутки | xargs ls -at1 выходные данные команды find подаются на вход ls, которая создает упорядоченный по времени модификации список всех файлов в один столбец Смысл в том, что если ввести в командной строке find . `pwd` -maxdepth 1 -type f -mtime -1 | xargs ls -at1 то на выходе будет список, содержащий и полные имена файлов, и имена, начинающиеся с текущей директории. Примерно так: ./file1 ./file2 /dir1/dir2/file1 /dir1/dir2/file2 А мне нужны только полные имена grep "'[!.]*'" "$a" командой grep исключаю из списка, имена файлов, начинающиеся с точки cat $b вывожу значение переменной b, в которой, по идее, должен лежать упорядоченный список полных имен файлов.
- Ошибка directory nonexistent, omnomnim, 14:16 , 11-Дек-15 (4)
Чукча не читатель?вам же выше написали: >find `pwd` -maxdepth 1 -type f -mtime -1 ! -name ".*" делает _именно_ то что вы хотите без переменных, грепов и редиректов man find
- Ошибка directory nonexistent, omnomnim, 14:19 , 11-Дек-15 (5)
> Чукча не читатель? > вам же выше написали: >>find `pwd` -maxdepth 1 -type f -mtime -1 ! -name ".*" > делает _именно_ то что вы хотите без переменных, грепов и редиректов > man find ЗЫ если хотите использовать вашего франкенштейна просто уберите "." точку из find find `pwd` -ляляляля ещё раз: man find
|