The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Ошибка directory nonexistent"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Ошибка directory nonexistent"  –1 +/
Сообщение от Nastya25 email(ok) on 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
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Ошибка directory nonexistent"  +/
Сообщение от asavah (ok) on 11-Дек-15, 02:25 
А как вы в пустую переменную редиректом собрались выхлоп загонять?
При таком написании скрипта с cat-ами и ">>" $a и $b должны быть предварительно определены как имена файлов

для начала на пальцах объясните что вы пытаетесь сделать,
а то в скрипте я вижу бред школьника неосилившего маны

матчасть:
http://www.tldp.org/LDP/abs/html/io-redirection.html
http://stackoverflow.com/questions/2559076/how-do-i-redirect...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Ошибка directory nonexistent"  +/
Сообщение от asavah (ok) on 11-Дек-15, 02:33 
ЗЫ
если я правильно понял что вы хотите ...

find `pwd` -maxdepth 1 -type f -mtime -1 ! -name ".*"

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Ошибка directory nonexistent"  +/
Сообщение от Nastya25 email(ok) on 11-Дек-15, 10:07 
> А как вы в пустую переменную редиректом собрались выхлоп загонять?
> При таком написании скрипта с 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, в которой, по идее, должен лежать упорядоченный список полных имен файлов.


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Ошибка directory nonexistent"  +/
Сообщение от omnomnim on 11-Дек-15, 14:16 
Чукча не читатель?

вам же выше написали:
>find `pwd` -maxdepth 1 -type f -mtime -1 ! -name ".*"

делает _именно_ то что вы хотите без переменных, грепов и редиректов
man find

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Ошибка directory nonexistent"  +/
Сообщение от omnomnim on 11-Дек-15, 14:19 
> Чукча не читатель?
> вам же выше написали:
>>find `pwd` -maxdepth 1 -type f -mtime -1 ! -name ".*"
> делает _именно_ то что вы хотите без переменных, грепов и редиректов
> man find

ЗЫ если хотите использовать вашего франкенштейна просто уберите "." точку из find

find `pwd` -ляляляля

ещё раз: man find

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру