LINUX.ORG.RU

Что ты написал я не понял, но libastral.so выдал следующую строку:

ls -lR > dir.txt

futurama ★★★★ ()
cat /path/to/directory/* >> dir.txt
Deleted ()

Пошел бы ты троллить куда-нибудь в другое место, друг недалекий!

anonymous ()
Ответ на: комментарий от Deleted

Хочу команду пихнуть в сш-скрипт и его пускать.
А можно как-то сделать так, чтобы не задавать путь до диры, а автоматом выводить содержимое той диры, где скрипт будет лежать?

PingVin125 ()

chcp 65001

aka hkcu/software/microsux/u90-+}\}lkM<l/khjgh54uyu34h600045435jhh5ij3ok4k5
комфортненько

amorpher ★★★★★ ()
Ответ на: комментарий от Deleted

Вообще выводит содержимое файлов, а надо список дир и файлов, наверное-не так чуть написал...

PingVin125 ()
Ответ на: комментарий от PingVin125

Если только текущей директории, то ls. Если сложнее что-то, то используй find. По умолчаниюю они используют текущую директорию (но для старых версий find нужно указывать).

Deleted ()
Ответ на: комментарий от PingVin125

Для вывода содержимого того каталога, где лежит скрипт

$ cat test.sh
#!/bin/bash
ls $(dirname $0) >> dir.txt

Для вывода содержимого того каталога, из которого запущен

$ cat test.sh
#!/bin/bash
ls >> dir.txt

или просто

$ ls >> dir.txt

Если это не подходит, то сформулируй задачу полностью.

Deleted ()
Ответ на: комментарий от Deleted
#!/bin/bash
ls -l -R $(dirname $0) >> dir.txt

Вроде то, что надо. Скрытые файлы выведет?

PingVin125 ()
Ответ на: комментарий от PingVin125

Вроде то, что надо. Скрытые файлы выведет?

В GNU/Linux скрытые файлы очень условны. Скрываются файлы, начинающиеся с точки, нет аналога Windows (аттрибут «скрытый»).

Исходя из вышесказанного ― создай скрытый файл и проверь. Нахера об этом на форуме спрашивать, когда проверить дело пары секунд?

Hint: man ls

Deleted ()
Ответ на: комментарий от PingVin125

Блин, выводит лишнее. Я положил этот код в файл 1.sh, сделал исполняемым, запустил-получил, что выводит лишнее-не только тот каталог, в котором лежит скрипт

PingVin125 ()
Ответ на: комментарий от PingVin125

Ты еще не видел вывод команды tree — ваще жесть и улет!

futurama ★★★★ ()
Ответ на: комментарий от beastie

гм. Создал в паке новая папка 1, новая пака 2, новая пака 3... В выводе не все есть...не все эти новые папки..

PingVin125 ()
Ответ на: комментарий от PingVin125

ни одного работающего как надо решения...

man ls
а не наугад тыкай

amorpher ★★★★★ ()
Ответ на: комментарий от amorpher

Делаю 2 дела сразу, вот и никак не соображу. Пробую разное и напишу, когда норм. будет. В маны то заглядываю.

PingVin125 ()
Ответ на: комментарий от PingVin125

#!/bin/bash ls -R -l -a>> dir.txtИ скрытые файлы выведет.И не лезет в верх дерева, а выводит то, где лежит. Пока единственно боле-менее удачный вариант....

PingVin125 ()
Ответ на: комментарий от amorpher

Можно и так:

#!/bin/bash
cd $PWD && ls -R -l -a>> dir.txt
Вроде не захватывает ничего выше по дереву.По идее-пойдет.Но надо погонять-мало ли..

PingVin125 ()
Ответ на: комментарий от PingVin125

То, что надо.
Но пока не буду ставить проблему как решенную - вдруг таки есть что-то проблемное в работе команды, что я не вижу.

PingVin125 ()
Ответ на: комментарий от PingVin125

надо погонять-мало ли..

Так и неясна цель темы, что откуда и куда надо.
И разницу посмотри между этим «>>» и этим «>».

`dirname «$0»` через линки может не работать

amorpher ★★★★★ ()
Последнее исправление: amorpher (всего исправлений: 1)
Ответ на: комментарий от amorpher

А в чеv разница? напишите коротко -в гугле забанили :-).
Преодолел багу - команда дописывала результаты в файл, а предыдущее не терла. Теперь трет:

#!/bin/bash
cd $PWD && rm -f dir.txt && ls -R -l -a>> dir.txt

PingVin125 ()
Ответ на: комментарий от amorpher
#!/bin/bash
cd $PWD && rm -f dir.txt && ls -R -l -a>> ./dir.txt

По идее - лучше указать, что файл сохраняется в папку, где я стартую...Что и сделано.

PingVin125 ()
Ответ на: комментарий от amorpher

Уяснил разницу между >> и > .Когда 2 -дописывает файл, когда 1 нет.
Тогда нет смысла дропать файл перед этим - если там не то, что надо -он перезапишется.
Тогда так:

#!/bin/bash
cd $PWD && ls -R -l -a> ./dir.txt

PingVin125 ()
Ответ на: комментарий от amorpher

Цель простая - есть дира в которой 100500 вложенных дир с файлом. Цель чтобы получить содержимое этих дир - какие файлы в них и поддиры и сформировать документ. Не руками а автоматом.

PingVin125 ()
Ответ на: комментарий от PingVin125

man tree

$ tree ~/urxvt/
/home/nope/urxvt/
└── copyPaste
    └── urxvt-perls
        ├── clipboard
        ├── keyboard-select
        ├── LICENSE
        ├── README.md
        └── url-select
anonymous ()
Ответ на: комментарий от PingVin125

Облом. Не хочу доставлять что-то, я хочу чтобы скрипт работал в системе из коробки...

PingVin125 ()
Ответ на: комментарий от PingVin125

Tree — команда рекурсивного отображения структуры каталогов, выводящая перечень файлов с соответствующими глубине отступами и цветовой идентификацией при установленной переменной окружения LS_COLORS и выводе в терминал. По дефолту ее нет. Сойдет и ls. Вложенность порядка 2-х всего.

PingVin125 ()
Ответ на: комментарий от PingVin125

«100500 вложенных дир» - оказывается вложенность небольшая, папок много, не туда посмотрел. А там где она большая- там список не нужен...

PingVin125 ()
Ответ на: комментарий от amorpher

Таки бажно. Если запустить из /root/X/TMP/новая папка, то ничего не создает. Однако если запустить из /root/X/TMP/2222 -все ок.
То есть нельзя класть в паку с русским именем...Вот в чем дело. Баг ls?

PingVin125 ()
Ответ на: комментарий от PingVin125

Нет, $PWD нужно взять в ковычки, из-за пробела в имени директории не происходит переход и возвращается код ошибки, в результате команда ls не отрабатывает, т.к. конструкция команда1 && команда2 отработает только в случае если первая команда отработала без ошибок.

kostik87 ★★★★★ ()
Ответ на: комментарий от PingVin125

Скажи, а зачем ты делаешь cd $PWD? Ты и так уже находишься в той директории в которую хочешь перейти, достаточно вызывать сразу ls с нужными параметрами.

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

Мало ли. Я решил оставить на всякий пожарный. Хуже не будет.

PingVin125 ()
Ответ на: комментарий от PingVin125

Таки дело не в русском, опять этот пробел, который в пингвине важен. И я опять про него не подумал, еще раз спасибо!

PingVin125 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.