В зависимости от того, как создается zip-файл, иногда он извлекает все файлы напрямую, а иногда он извлекает файлы в подкаталог.
Если последнее верно, как я могу заставить unzip
команду «игнорировать» этот каталог первого уровня?
Пример:
cd /tmp
wget http://omeka.org/files/omeka-1.5.1.zip
mkdir omeka
unzip omeka-1.5.1.zip -d omeka/
cd omeka/
ll
Что я получаю это /tmp/omeka/omeka-1.5.1/
:
total 12
drwxr-xr-x 3 root root 4096 2012-05-08 18:44 ./
drwxrwxrwt 6 root root 4096 2012-05-08 18:44 ../
drwxr-xr-x 5 root root 4096 2012-04-20 14:54 omeka-1.5.1/
Мне нужны файлы, извлеченные /tmp/omeka/
(на один уровень выше, и номер версии не включен в структуру каталогов)
/tmp/omeka/(files)
Я знаю, что могу использовать эту -j
опцию для «ненужных путей», но я хочу сохранить структуру подкаталогов, но не структуру каталогов верхнего уровня. Как я могу это сделать?
/wordpress/
каталог (без номера версии) внутри zip-файла. Это действительно хорошо unzip
и тогда, mv
но отсутствие контроля над этим и необходимость сделать это в два шага всегда немного раздражали меня. К счастью, Wordpress также имеет .tar.gz
вкус :)
cd /tmp/omeka && ln -s -T . omeka-1.5.1
mv
файлы, но я хотел посмотреть, есть ли способ сделать это прямо из команды unzip