Дано: Допустим имеем на входе параметр ~
Задача:
1) Вывести пути (или названия) файлов в ~ в виде списка (т.е. с переходом на новую строку) в терминал
2) Вывести пути (или названия) файлов и файлов-симлинков (т.е. симлинки на папки в расчет не берем) в ~ в виде списка в терминал
Условие: вхождение только в родительскую папку ~, т.е. без рекурсии.
Как реализовать в терминале/скрипте?
Как получить список файлов и файлов-симлинков в виде списка?
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод
inxi -Fxz
в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
-
Автор темы - Сообщения: 938
- Зарегистрирован: 16 фев 2017, 20:03
- Решено: 5
- Откуда: г. Хабаровск
- Благодарил (а): 268 раз
- Поблагодарили: 262 раза
- Контактная информация:
Как получить список файлов и файлов-симлинков в виде списка?
Вы не готовы!
-
- Сообщения: 10015
- Зарегистрирован: 27 авг 2016, 22:57
- Решено: 215
- Откуда: НН
- Благодарил (а): 815 раз
- Поблагодарили: 3010 раз
- Контактная информация:
Как получить список файлов и файлов-симлинков в виде списка?
root, юзай
find
Код: Выделить всё
▶ touch /tmp/tmp/file1
▶ ln -s /tmp/tmp/file1 /tmp/tmp/link1
▶ ls -l /tmp/tmp
-rw-rw-r-- 1 chocobo chocobo 0 авг 20 12:03 file1
lrwxrwxrwx 1 chocobo chocobo 14 авг 20 12:03 link1 -> /tmp/tmp/file1
Код: Выделить всё
▶ find /tmp/tmp/ -type f -printf %f\\n\\r
file1
Код: Выделить всё
▶ find -L /tmp/tmp/ -type f -printf %f\\n\\r
file1
link1
Код: Выделить всё
-L Follow symbolic links. When find examines or prints information about files, the information used shall be
taken from the properties of the file to which the link points, not from the link itself (unless it is a bro‐
ken symbolic link or find is unable to examine the file to which the link points). Use of this option implies
-noleaf. If you later use the -P option, -noleaf will still be in effect. If -L is in effect and find dis‐
covers a symbolic link to a subdirectory during its search, the subdirectory pointed to by the symbolic link
will be searched.
-
- Сообщения: 3898
- Зарегистрирован: 14 фев 2018, 00:51
- Решено: 31
- Откуда: Краснодар
- Благодарил (а): 1688 раз
- Поблагодарили: 1213 раз
- Контактная информация:
Как получить список файлов и файлов-симлинков в виде списка?
ls -1s | grep 'N'
где N = 4 - папка, >4 файл, 0 симлинк
неее... фигня... по другому признаку надо фильтровать и ещё штудировать man ls
-
Автор темы - Сообщения: 938
- Зарегистрирован: 16 фев 2017, 20:03
- Решено: 5
- Откуда: г. Хабаровск
- Благодарил (а): 268 раз
- Поблагодарили: 262 раза
- Контактная информация:
Как получить список файлов и файлов-симлинков в виде списка?
Chocobo, find - рекурсивная программа. Т.е. фильтровать вывод, грубо говоря, / - непрофитно. И твой код здесь
Это не подходит, потому что:
find /tmp/tmp/ -type f -printf %f\\n\\r
входит в подпапки и выводит только название файлов. А find -L /tmp/tmp/ -type f -printf %f\\n\\r
вовсе начинает "гулять" по содержимому симлинка на папку из-за опции -L. Это не подходит, потому что:
-----------------
Выводит папки, нужны только файлы и "файлы и симлинк-файлы"
Вы не готовы!
-
Автор темы - Сообщения: 938
- Зарегистрирован: 16 фев 2017, 20:03
- Решено: 5
- Откуда: г. Хабаровск
- Благодарил (а): 268 раз
- Поблагодарили: 262 раза
- Контактная информация:
Как получить список файлов и файлов-симлинков в виде списка?
Chocobo, perfect! Никогда больше не буду читать man-ы через интернет (в родном man-е есть эта опция, а здесь http://www.opennet.ru/man.shtml?category=1&topic=find, например, её нет = устаревшая информация). Спасибо, выручил!) А то так бы и бился головой о стену)
Вы не готовы!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя