imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Программы и Операционные системы > Пингвинятник (ОС *NIX)
Опции темы
Старый 12.04.2006, 00:27     # 1
MiracleDrug
Junior Member
 
Регистрация: 21.03.2005
Сообщения: 59

MiracleDrug Известность не заставит себя ждатьMiracleDrug Известность не заставит себя ждать
Помогите написать скрипт

Помогите пожалуйста написать скрипт под Лінух или Фришку который бы получал название каталога и выводил название подкаталога который создан познее всех.
Можна написать на Перле или на язике командного интерпретатора.
Буду весьма благодарен
MiracleDrug вне форума  
Старый 12.04.2006, 02:41     # 2
ftpd
Junior Member
 
Регистрация: 20.05.2002
Адрес: dp.ua
Сообщения: 98

ftpd Молодецftpd Молодецftpd Молодец
для фри 5.3(проверено)
скрипту передается параметром имя каталога в котором искать.
Однако используется не дата создания, а дата модификации.
Код:
#!/bin/sh
ls -tAFl $1 | grep -e "\/\$" | awk '{print $9;exit}'
или то же, но без grep
Код:
#!/bin/sh
ls -tAFl $1 |  awk '{if (/\/$/) {print $9;exit} }'
__________________
"Люди не хотят жить вечно. Люди просто не хотят умирать..." (c) Станислав Лем.
--
Для тех, кто не в курсе - все спасибо в репутацию или ПС.

Последний раз редактировалось ftpd; 12.04.2006 в 02:44.
ftpd вне форума  
Старый 12.04.2006, 03:10     # 3
MiracleDrug
Junior Member
 
Регистрация: 21.03.2005
Сообщения: 59

MiracleDrug Известность не заставит себя ждатьMiracleDrug Известность не заставит себя ждать
Цитата:
Сообщение от ftpd
для фри 5.3(проверено)

Код:
#!/bin/sh
ls -tAFl $1 | grep -e "\/\$" | awk '{print $9;exit}'
Если не трудно разясни пожалуйста подробнее об етом выражение.
Особенно интересна и малопонятна команда awk '{print $9;exit}.
MiracleDrug вне форума  
Старый 12.04.2006, 03:52     # 4
ftpd
Junior Member
 
Регистрация: 20.05.2002
Адрес: dp.ua
Сообщения: 98

ftpd Молодецftpd Молодецftpd Молодец
вывести 9-ое поле первой строки(т.е. имя файла или каталога) и выйти.
строка делится на поля пробелами или табами.
вот пример:
Код:
>ls -tAFl
-rw-------  1 ftpd    wheel       2333 10 апр 12:58 .history
drwxr-xr-x  3 ftpd    wheel        512  7 апр 22:33 .mc/
кратко по каждой команде:
ls -tAFl
вывести все файлы в расширеном виде с указанием "/" в конце имени файла, если файл каталог
grep -e "\/\$"
получить строки которы заканчиваются символом "/"
awk '{print $9;exit}'
вывести 9-ое поле строки и выйти.
__________________
"Люди не хотят жить вечно. Люди просто не хотят умирать..." (c) Станислав Лем.
--
Для тех, кто не в курсе - все спасибо в репутацию или ПС.
ftpd вне форума  
Старый 12.04.2006, 11:09     # 5
MiracleDrug
Junior Member
 
Регистрация: 21.03.2005
Сообщения: 59

MiracleDrug Известность не заставит себя ждатьMiracleDrug Известность не заставит себя ждать
тогда возникает еще 2 вопроса
1) как тогда вывести 3 каталога которые самые старие?
2) как пройтись по всех подкаталогах, подкаталогах етих подкаталогов тоесть по всему дереву каталогов заданого каталога?
MiracleDrug вне форума  
Старый 13.04.2006, 02:06     # 6
ftpd
Junior Member
 
Регистрация: 20.05.2002
Адрес: dp.ua
Сообщения: 98

ftpd Молодецftpd Молодецftpd Молодец
Код:
#!/bin/sh
LC_ALL=C
find $1  -type d -print -exec stat -l {} \; | awk '{  
if (NF > 1) {
	print $6" "$7" "$8" "$9" "$10;  
}
}'|sort -k4,4n -k1,1M -k2.2n -k3.3g | head -3
делает рекурсивный обход всех подкаталогов указанного каталога, выбирает директории, awk - выгребает нужные поля - sort сортирует head - показывает первые три записи.
удачи.
__________________
"Люди не хотят жить вечно. Люди просто не хотят умирать..." (c) Станислав Лем.
--
Для тех, кто не в курсе - все спасибо в репутацию или ПС.

Последний раз редактировалось ftpd; 13.04.2006 в 02:40. Причина: Ошибка в скрипте
ftpd вне форума  
Старый 13.04.2006, 03:13     # 7
MiracleDrug
Junior Member
 
Регистрация: 21.03.2005
Сообщения: 59

MiracleDrug Известность не заставит себя ждатьMiracleDrug Известность не заставит себя ждать
Спасибо
Вот нашел более простой вариант.

#!/bin/bash
echo -n "Enter the path:"
echo
read $dir_path
find $dir_path -type d -exec stat -c "%y %n" {} \; | sort -n | head -n 1
MiracleDrug вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 13:35.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.