ls or find (полный путь расположения файлов)
Модераторы: SLEDopit, Модераторы разделов
-
olg.d
- Сообщения: 51
ls or find
Читал маны ls, не могу сделать так чтоб был виден полный путь расположения файлов в папках (дерево), подскажите плиз как это можно сделать... нужно еще по создателю сортировать
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: ls or find
Читал маны ls, не могу сделать так чтоб был виден полный путь расположения файлов в папках (дерево)
тоже когда-то искал, но толи невнимательно, толи такого действительно нет. смудрил себе тогда велосипед типа:
Код: Выделить всё
diesel@beezir:~$ function path { echo `pwd`/`ls -d $1`; }
diesel@beezir:~$ path mpd/src/zeroconf.c
/home/diesel/mpd/src/zeroconf.cя даю ему относительный путь, он мне выплевывает прямой (правда немного криво будет если ../ ./ юзать, но мну такого достаточно).
-
IMB
- Сообщения: 2567
- ОС: Debian
Re: ls or find
Насколько я помню рекурсивный просмотр директории выводит полный путь.
-
olg.d
- Сообщения: 51
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: ls or find
если нужно полный путь к каждому файлу в директории - просто скажи find'у полный путь к директории в которой надо смотреть .... типа find /home/diesel; если просто скажешь find, находясь в /home/diesel - он будет выдавать относительный путь.
-
olg.d
- Сообщения: 51
Re: ls or find
у меня около 200 юзеров и гдето 100 шар для них, настроены квоты, и когда квоты будут переполнятся я хочу видеть где у них и какой мусор лежит, просто юзера бухи.)))
у меня около 200 юзеров и гдето 100 шар для них, настроены квоты, и когда квоты будут переполнятся я хочу видеть где у них и какой мусор лежит, просто юзера бухи.)))
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: ls or find
olg.d писал(а): ↑12.01.2008 14:18
у меня около 200 юзеров и гдето 100 шар для них, настроены квоты, и когда квоты будут переполнятся я хочу видеть где у них и какой мусор лежит, просто юзера бухи.)))
хм. все это на одной машине? или смаунчено на одной машине? Допустим у тебя есть список директорий которые ты желаешь мониторить на размер:
Код: Выделить всё
diesel@beezir:/home$ cat /home/diesel/dir_list
/home/diesel
/home/vasiliy
/home/diesel_debian
/home/diesel_data
/home/diesel_legacy
/home/ftpполучить размер всех директорий и отсортировать их по размеру достаточно просто:
Код: Выделить всё
diesel@beezir:/home$ cat /home/diesel/dir_list |xargs du -s| sort -n
4 /home/ftp
38744 /home/diesel_legacy
1055260 /home/diesel_debian
1427104 /home/vasiliy
6325172 /home/diesel
25837468 /home/diesel_dataили если я хочу увидеть инфу полностью, можно так:
Код: Выделить всё
diesel@beezir:/home$ cat /home/diesel/dir_list |while read i; do echo `du -s $i` `ls -ld $i`; done|sort -n |awk '{print $2"; size:",$1"; owner:", $5}'
/home/ftp; size: 4; owner: root
/home/diesel_legacy; size: 38744; owner: diesel
/home/diesel_debian; size: 1055260; owner: diesel
/home/vasiliy; size: 1427104; owner: diesel
/home/diesel; size: 6325172; owner: diesel
/home/diesel_data; size: 25837468; owner: dieselесли положить в какой-нить файл, кусок этой строчки:
Код: Выделить всё
diesel@beezir:/home$ cat diesel/dsize.sh
#!/bin/bash
while read i; do echo `du -s $i` `ls -ld $i`; done|sort -n |awk '{print $2"; size:",$1"; owner:", $5}'то можно и вот так делать:
Код: Выделить всё
diesel@beezir:/home$ find /lib/ -maxdepth 1 -mindepth 1 -type d |diesel/dsize.sh
/lib/firmware; size: 4; owner: root
/lib/i486-linux-gnu; size: 4; owner: root
/lib/alsa; size: 8; owner: root
/lib/oss-compat; size: 8; owner: root
/lib/lsb; size: 12; owner: root
/lib/linux-sound-base; size: 20; owner: root
/lib/init; size: 24; owner: root
/lib/udev; size: 180; owner: root
/lib/terminfo; size: 188; owner: root
/lib/security; size: 428; owner: root
/lib/discover; size: 528; owner: root
/lib/iptables; size: 780; owner: root
/lib/i686; size: 2456; owner: root
/lib/modules; size: 135284; owner: root
diesel@beezir:/home$ ls
diesel diesel_data diesel_debian diesel_legacy ftp lost+found vasiliy
diesel@beezir:/home$ ls |diesel/dsize.sh
ftp; size: 4; owner: root
diesel_legacy; size: 38744; owner: diesel
diesel_debian; size: 1055260; owner: diesel
vasiliy; size: 1427104; owner: diesel
diesel; size: 6325180; owner: diesel
diesel_data; size: 25837468; owner: dieselну или точнее формулируйте шо надо
-
olg.d
- Сообщения: 51
Re: ls or find
diesel писал(а): ↑12.01.2008 15:34olg.d писал(а): ↑12.01.2008 14:18
у меня около 200 юзеров и гдето 100 шар для них, настроены квоты, и когда квоты будут переполнятся я хочу видеть где у них и какой мусор лежит, просто юзера бухи.)))
хм. все это на одной машине? или смаунчено на одной машине? Допустим у тебя есть список директорий которые ты желаешь мониторить на размер:
Код: Выделить всё
diesel@beezir:/home$ cat /home/diesel/dir_list /home/diesel /home/vasiliy /home/diesel_debian /home/diesel_data /home/diesel_legacy /home/ftp
получить размер всех директорий и отсортировать их по размеру достаточно просто:
Код: Выделить всё
diesel@beezir:/home$ cat /home/diesel/dir_list |xargs du -s| sort -n 4 /home/ftp 38744 /home/diesel_legacy 1055260 /home/diesel_debian 1427104 /home/vasiliy 6325172 /home/diesel 25837468 /home/diesel_data
или если я хочу увидеть инфу полностью, можно так:
Код: Выделить всё
diesel@beezir:/home$ cat /home/diesel/dir_list |while read i; do echo `du -s $i` `ls -ld $i`; done|sort -n |awk '{print $2"; size:",$1"; owner:", $5}' /home/ftp; size: 4; owner: root /home/diesel_legacy; size: 38744; owner: diesel /home/diesel_debian; size: 1055260; owner: diesel /home/vasiliy; size: 1427104; owner: diesel /home/diesel; size: 6325172; owner: diesel /home/diesel_data; size: 25837468; owner: diesel
если положить в какой-нить файл, кусок этой строчки:
Код: Выделить всё
diesel@beezir:/home$ cat diesel/dsize.sh #!/bin/bash while read i; do echo `du -s $i` `ls -ld $i`; done|sort -n |awk '{print $2"; size:",$1"; owner:", $5}'
то можно и вот так делать:
Код: Выделить всё
diesel@beezir:/home$ find /lib/ -maxdepth 1 -mindepth 1 -type d |diesel/dsize.sh /lib/firmware; size: 4; owner: root /lib/i486-linux-gnu; size: 4; owner: root /lib/alsa; size: 8; owner: root /lib/oss-compat; size: 8; owner: root /lib/lsb; size: 12; owner: root /lib/linux-sound-base; size: 20; owner: root /lib/init; size: 24; owner: root /lib/udev; size: 180; owner: root /lib/terminfo; size: 188; owner: root /lib/security; size: 428; owner: root /lib/discover; size: 528; owner: root /lib/iptables; size: 780; owner: root /lib/i686; size: 2456; owner: root /lib/modules; size: 135284; owner: root diesel@beezir:/home$ ls diesel diesel_data diesel_debian diesel_legacy ftp lost+found vasiliy diesel@beezir:/home$ ls |diesel/dsize.sh ftp; size: 4; owner: root diesel_legacy; size: 38744; owner: diesel diesel_debian; size: 1055260; owner: diesel vasiliy; size: 1427104; owner: diesel diesel; size: 6325180; owner: diesel diesel_data; size: 25837468; owner: diesel
ну или точнее формулируйте шо надо
спасиб. обязательно попробую, вообще это все я делаю для доменных пользователей на САМБА-ресурсе