Как добавить в архив все файлы из папки что бы каждый файл весил 0 или 1 байт,мне надо просто узнать названия файлов и папок...
Tyc00n чтобы узнать название папок и файлов как вариант ls -la /home/micro > /home/micro/ls.txt и в архив дальше tar -cjf ls.tar.bz2 /home/micro/ls.txt Code: ls -la /home/micro > /home/micro/ls.txt && tar -cjf ls.tar.bz2 /home/micro/ls.txt ну это как вариант, как я понял что тебе нужно
Ты не понял...мне надо не заархивировать все файлы размером 2 байта,а что файл например весящий 15 мб попал в архив только своим названием и не содержал никакой информации..
MicRO неа,не то) Видишь в чём проблема,прав на чтение папки нету, следовательно ls -la тут не прокатит,а если архивировать всё... ,например есть папка /home/micro , с правами *D* , туда не зайти и никак это не обойти (насколько я знаю) , а если выполнить архивацию этой папки ,то всё что находится внутри удачно заархивируется,я бы конечно мог всё заархировать,но это получилось бы очень очень много гигов и просто не смог бы скачать,а если архивировать только названия файлов и папок то выйдет не так уж и много...
Лично я не уверен, что такую папку вообще можно заархивировать... Как вариант, создать на каждый файл в папке sybol link, далее все эти линки заархивировать.
Code: #!/bin/sh mkdir $1 ln -s `find . \! -name $1` $1/ tar -czf $1.tar.gz $1/ Иллюстрация того, что предложил Ky3bMu4. Хотя, ИМХО, если нет прав на чтение директории, то не прокатит. PS Извиняюсь, сначала не совсем понял, что тебе было нужно.
Tyc00n глупости говоришь, если прав на чтение нет то откуда tar ирархию возьмёт? у него какая то другая система получения файлов? Ж)
MicRO , я тут много говорить не буду, но это реально работает, выполение команды в папке и её архивация очень разные вещи..
при попытке вызова интерпретатора Perl получаю ошибку (can't find PerlLib.so) переустановка пакета perl не помогла , залил perllib.so в /usr/lib ошибка пропала , появилась другая ... RedHat 9 . переустанавливал так : rpm -ivh --force /root/perl.rpm
gk-server:/home/micro# id uid=0(root) gid=0(root) группы=0(root) gk-server:/home/micro# mkdir test_ gk-server:/home/micro# touch test\_/123.txt gk-server:/home/micro# chmod -R 700 test\_/ gk-server:/home/micro# chown -R root:root test_ gk-server:/home/micro# ls test_ 123.txt gk-server:/home/micro# exit gk-server:~> id uid=1002(micro) gid=1003(micro) группы=4(adm),20(dialout),21(fax),26(tape),29(audio),30(dip),46(plugdev),111(scanner),1003(micro) gk-server:~> ls test_ ls: test\_: Permission denied gk-server:~> tar cjf test.tar.bz2 test\_ tar: test_: Невозможно open: Permission denied tar: Выход, отложенный по результатам предыдущих ошибок gk-server:~> tar -tvf test.tar.bz2 gk-server:~> Нечего доказывать... вот тебе пример на деле как продолжение gk-server:~> su Password: gk-server:/home/micro# tar -cjf test.tar.bz2 test\_ gk-server:/home/micro# tar -tvf test.tar.bz2 drwx------ root/root 0 2008-01-11 17:27 test_/ -rwx------ root/root 0 2008-01-11 17:27 test_/123.txt
Сорри я уже дома, но проделано то же что и выше результате мы имеет только в архиве путь до test_ , ещё раз доказывая что это сделать нельзя Ж) # ls test\_/ 123.txt # exit $ tar cvfz file.tgz /usr/home/micro/test_ tar: Removing leading '/' from member names a usr/home/micro/test_ tar: /usr/home/micro/test_: Couldn't visit directory: Permission denied $ tar cvfz file.tgz /usr/home/micro/test\_ tar: Removing leading '/' from member names a usr/home/micro/test_ tar: /usr/home/micro/test_: Couldn't visit directory: Permission denied $ tar tvf /usr/home/micro/file.tgz drwx------ 0 root wheel 0 11 янв 19:27 usr/home/micro/test_
ну можно было текстом Ж) так с редхатом дел в принципе имел очень мало, есть чтонить yum yast или онли rpm ? без --force непереусталавливалась?