Хочу команду пихнуть в сш-скрипт и его пускать.
А можно как-то сделать так, чтобы не задавать путь до диры, а автоматом выводить содержимое той диры, где скрипт будет лежать?
Если только текущей директории, то ls. Если сложнее что-то, то используй find. По умолчаниюю они используют текущую директорию (но для старых версий find нужно указывать).
Блин, выводит лишнее. Я положил этот код в файл 1.sh, сделал исполняемым, запустил-получил, что выводит лишнее-не только тот каталог, в котором лежит скрипт
#!/bin/bash
ls -R -l -a>> dir.txtИ скрытые файлы выведет.И не лезет в верх дерева, а выводит то, где лежит. Пока единственно боле-менее удачный вариант....
Уяснил разницу между >> и > .Когда 2 -дописывает файл, когда 1 нет.
Тогда нет смысла дропать файл перед этим - если там не то, что надо -он перезапишется. Тогда так:
Цель простая - есть дира в которой 100500 вложенных дир с файлом. Цель чтобы получить содержимое этих дир - какие файлы в них и поддиры и сформировать документ. Не руками а автоматом.
Tree — команда рекурсивного отображения структуры каталогов, выводящая
перечень файлов с соответствующими глубине отступами и цветовой
идентификацией при установленной переменной окружения LS_COLORS и выводе в
терминал. По дефолту ее нет. Сойдет и ls. Вложенность порядка 2-х всего.
Таки бажно. Если запустить из /root/X/TMP/новая папка, то ничего не создает. Однако если запустить из /root/X/TMP/2222 -все ок.
То есть нельзя класть в паку с русским именем...Вот в чем дело. Баг ls?
Нет, $PWD нужно взять в ковычки, из-за пробела в имени директории не происходит переход и возвращается код ошибки, в результате команда ls не отрабатывает, т.к. конструкция команда1 && команда2 отработает только в случае если первая команда отработала без ошибок.
Скажи, а зачем ты делаешь cd $PWD? Ты и так уже находишься в той директории в которую хочешь перейти, достаточно вызывать сразу ls с нужными параметрами.