|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : ’ҐаҐе®ў ѓҐ ¤Ё© 2:5020/400 24 Dec 2001 20:53:21 To : All Subject : Имена каталогов с точками и -d --------------------------------------------------------------------------------
Здравствуйте, ALL!
Кто мне объяснит почему при проверке файлов на предмет являются ли
они директориями или нет директории имена которых начинаются с точки
(Linux) таковыми не считаются?
Вот пример хелловорда (чисто для демонстрации непонятки :) ):
#!/usr/bin/perl -w
opendir(DIR,"/home/webmaster") or die "Hе могу открыть каталог: $!\n";
@names = readdir(DIR) or die "Hе могу прочитать каталог: $!\n";
foreach $name (@names) {
if (-d $name) {
print "Hайден каталог: $name\n";
}
else {
print "Hайден файл: $name\n";
}
}
closedir(DIR);
Это фактическое содержимое просматриваемой директории:
drwxr-x--- 29 webmaste webmaste 4096 Дек 21 01:34 .
drwxr-xr-x 7 root root 4096 Дек 18 01:28 ..
-rw-r--r-- 1 webmaste webmaste 0 Дек 2 17:58 .addressbook
-rw------- 1 webmaste webmaste 2285 Дек 2 17:58 .addressbook.lu
-rw------- 1 webmaste webmaste 4060 Дек 22 10:23 .bash_history
-rw-r--r-- 1 webmaste webmaste 24 Окт 6 21:10 .bash_logout
-rw-r--r-- 1 webmaste webmaste 227 Окт 6 21:10 .bash_profile
-rw-r--r-- 1 webmaste webmaste 379 Окт 6 21:10 .bashrc
drwx------ 2 webmaste webmaste 4096 Дек 2 16:54 .cedit
lrwxrwxrwx 1 webmaste webmaste 52 Окт 7 17:56
.DCOPserver_localhost.localdomain ->
/home/webmaster/.DCOPserver_localhost.localdomain_:0
drwxr-xr-x 3 webmaste webmaste 4096 Дек 10 15:46 Desktop
-rw-r--r-- 1 webmaste webmaste 4523 Окт 6 21:10 .emacs
-rw-r--r-- 1 webmaste webmaste 5006 Окт 6 21:10 .enscriptrc
-rw------- 1 webmaste webmaste 16 Дек 8 00:33 .esd_auth
drwx------ 3 webmaste webmaste 4096 Дек 8 00:48 .gconf
drwx------ 2 webmaste webmaste 4096 Дек 8 00:48 .gconfd
drwxr-xr-x 7 webmaste webmaste 4096 Дек 10 15:44 .gnome
drwxr-xr-x 2 webmaste webmaste 4096 Дек 8 00:41 .gnome-desktop
drwx------ 3 webmaste webmaste 4096 Дек 10 15:41 .gnome_private
drwxr-xr-x 4 webmaste webmaste 4096 Окт 7 18:26 .gqview
drwxr-xr-x 3 webmaste webmaste 4096 Дек 10 15:41 .gtkzip
-rw------- 1 webmaste webmaste 0 Дек 10 15:46 .ICEauthority
drwxr-xr-x 2 webmaste webmaste 4096 Дек 10 15:03 .icewm
drwxr-xr-x 5 webmaste webmaste 4096 Дек 10 15:38 .kde
-rw-r--r-- 1 webmaste webmaste 78 Окт 6 21:15 .kderc
drwx------ 2 webmaste webmaste 4096 Дек 20 01:59 .links
-rw-r--r-- 1 webmaste webmaste 17 Окт 6 21:10 .lpoptions
-rw-r--r-- 1 webmaste webmaste 12879 Окт 6 21:10 .lynxrc
drwxr-xr-x 13 webmaste webmaste 4096 Дек 5 02:59 .lyx
drwx------ 3 webmaste webmaste 4096 Дек 2 18:01 mail
-rw-r--r-- 1 webmaste webmaste 141 Окт 6 21:10 .mailcap
drwxr-xr-x 3 webmaste webmaste 4096 Дек 21 02:28 .mc
-rw------- 1 root root 32 Дек 2 23:15 .MCOP-random-seed
-rw------- 1 webmaste webmaste 31 Дек 10 15:38 .mcoprc
drwxr-xr-x 3 webmaste webmaste 4096 Дек 19 08:20 .mozilla
drwxr-xr-x 6 webmaste webmaste 4096 Окт 6 21:10 .mutt
drwxr-xr-x 4 webmaste webmaste 4096 Дек 8 00:35 .nautilus
drwxr-xr-- 2 webmaste webmaste 4096 Дек 8 00:34 Nautilus
drwxr-xr-x 4 webmaste webmaste 4096 Окт 6 21:10 .netscape
drwxr-x--- 2 webmaste webmaste 4096 Дек 8 00:37 .ntrc
drwxr-xr-x 4 webmaste webmaste 4096 Дек 22 13:13 perl
-rw-r--r-- 1 webmaste webmaste 14368 Дек 2 17:45 .pinerc
drwxr-xr-x 3 webmaste webmaste 4096 Дек 8 00:41 .sawfish
drwxr-xr-x 5 webmaste webmaste 4096 Окт 6 18:40 temporary
drwx------ 5 webmaste webmaste 4096 Дек 22 05:01 tmp
-rw-r--r-- 1 webmaste webmaste 6 Окт 7 23:27 .wmrc
drwx------ 3 webmaste webmaste 4096 Окт 7 17:58 .xauth
-rw------- 1 webmaste webmaste 115 Дек 2 20:26 .Xauthority
-rw-r--r-- 1 webmaste webmaste 2625 Окт 6 21:10 .Xdefaults
-rw-r--r-- 1 webmaste webmaste 454 Дек 19 09:23 .xinerc
-rw-r--r-- 1 webmaste webmaste 260 Окт 6 21:10 .xinitrc
drwxr-xr-x 4 webmaste webmaste 4096 Дек 2 23:11 .xmms
-rw------- 1 webmaste webmaste 139 Окт 7 20:03 .xsession-errors
А это результат работы вышеприведенного хелловорда:
Hайден каталог: .
Hайден каталог: ..
Hайден файл: .Xdefaults
Hайден файл: .bash_logout
Hайден файл: .bash_profile
Hайден файл: .bashrc
Hайден файл: .emacs
Hайден файл: .enscriptrc
Hайден файл: .gnome
Hайден файл: .gnome-desktop
Hайден файл: .icewm
Hайден файл: .kde
Hайден файл: .links
Hайден файл: .lpoptions
Hайден файл: .lynxrc
Hайден файл: .mailcap
Hайден файл: .mutt
Hайден файл: .netscape
Hайден файл: .pinerc
Hайден файл: .xinitrc
Hайден файл: Desktop
Hайден файл: tmp
Hайден файл: .kderc
Hайден файл: .bash_history
Hайден файл: temporary
Hайден файл: .wmrc
Hайден файл: .xsession-errors
Hайден файл: .xauth
Hайден файл: perl
Hайден файл: .mc
Hайден файл: .Xauthority
Hайден файл: .DCOPserver_localhost.localdomain
Hайден файл: .gqview
Hайден файл: .cedit
Hайден файл: .ICEauthority
Hайден файл: mail
Hайден файл: .addressbook
Hайден файл: .addressbook.lu
Hайден файл: .xinerc
Hайден файл: .xmms
Hайден файл: .MCOP-random-seed
Hайден файл: .mozilla
Hайден файл: .lyx
Hайден файл: .gnome_private
Hайден файл: .esd_auth
Hайден файл: .sawfish
Hайден файл: .gconfd
Hайден файл: .gconf
Hайден файл: Nautilus
Hайден файл: .nautilus
Hайден файл: .ntrc
Hайден файл: .gtkzip
Hайден файл: .mcoprc
Как видите каталогами считаются почему-то только текущий и родительский
каталоги, а каталоги, имя кот. начинается с точки, таковыми не считаются.
Это так и должно быть или я чего-то недопонимаю?
Заранее спасиббо за помощь,
с уважением,
Геннадий
--
Отправлено через сервер Talk.Ru - http://www.talk.ru
--- ifmail v.2.15dev5
* Origin: Talk.ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488058b3ea0.html, оценка из 5, голосов 10
|