пишу скрипт, делающий суточный бэкап. бэкапить надо все папки в определённой директории и в общем случае число папок может меняться (как и названия). хочется это дело автоматизировать.
тут еще особенность в том, что каждую подпапку надо прежде специальным образом обработать:
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
выводит ВСЕ поддиректории любого уровня вложенности (
а подробнее про выделенный параметр можно?
у файнда полно ключей
есть например такие
-maxdepth
-mindepth
и еще много разных
* символ генерации имен файлов
вообще там может быть список параметров которые будут по очереди подставлятся в переменную i
можно так
for i in `ls ` ; do echo $i ; done
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
nesk, у Вас есть еще пять минут, чтобы предоставить вразумительное объяснение Вашей шутки. Если через пять минут я его тут не увижу, Вы отправитесь в бан размышлять о том, о чем следует шутить, а о чем нет.
Учтите, что по умолчанию разделителем в списке in является пробел, тоесть если в имени файла есть пробелы, то части имени файла будут обрабатываться отдельно.
так что это решение в чистом виде не подходит
Воля Ваша.
Один день бана.
UT
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
Зачем Вы предлагаете пользователю стереть все файлы в текущей директории?
Я жду объяснений.
nesk, у Вас есть еще пять минут, чтобы предоставить вразумительное объяснение Вашей шутки. Если через пять минут я его тут не увижу, Вы отправитесь в бан размышлять о том, о чем следует шутить, а о чем нет.
Я никому ничего не предлогаю, просто пример цикла for при работе с содержимым каталога.
Не очень то и хотелось
прощайте
Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю.
Учтите, что по умолчанию разделителем в списке in является пробел, тоесть если в имени файла есть пробелы, то части имени файла будут обрабатываться отдельно.
так что это решение в чистом виде не подходит
мне это как раз подходит - правила создания директорий в той папке написаны: пробел туда может забраться только по ошибке
Never stop thinking..................................................................
[doka@dokasrv ppp]$ ls -l | grep "^d"
drwxr-xr-x 3 root root 4096 Apr 1 12:37 peers
[doka@dokasrv ppp]$ tree -d -L 1
bash: tree: command not found
[doka@dokasrv ppp]$ ls -d */
peers/
[doka@dokasrv ppp]$ ls -d */ | xargs -l basename
peers
[doka@dokasrv ppp]$ echo */
peers/
[doka@dokasrv ppp]$ find . -type d -maxdepth 1 -mindepth 1
./peers
поскольку параметр-имя_директории будет использовано как имя файла то подходит только вариант "ls -d */ | xargs -l basename" (чтобы без слешей имя было).
спасибо за помощь.
Never stop thinking..................................................................
Я тут случайно проходил мимо.
У меня эта задачка решилась так:
Код:
#!/bin/bash
if [ "$#" = 0 ]; then
echo "Usage: $0 catalog"
exit
fi
CATALOG="$1"
if [ ! -z "$CATALOG" ]; then
if [ -d "$CATALOG" ]; then
for current in $CATALOG/*; do
[ -d $current ] && echo "$current"
done
fi
fi
exit 0
Сохраняем это все в исполняемом файле и в консоли пишем: $ scriptname catalog
Познание бесконечности требует бесконечного времени.
А. и Б. Стругацкие
Понедельник начинается в субботу