Разархивируйте несколько ziped и автоматически переименуйте файлы с тем же именем
У меня есть несколько файлов Ziped в папке, и я хотел бы разархивировать все, но автоматически переименовывать папки или файлы с тем же именем, например:
В ZIP_folder_1.zip
а также ZIP_folder_2.zip
у меня есть одна папка под названием my_name
, если я разархивирую все с помощью команды выше, командная строка спросит, хочу ли я переименовать ее, поэтому, если у меня есть 3k папок с тем же именем, я сойду с ума.
Я пытаюсь использовать:
find . -type f -name "*.zip" -exec unzip {} -d {}.contents/;
Но я вижу
find: missing argument to `-exec'
Другой момент: я могу передать папку назначения?
Спасибо!!!
Благодарю.
1 ответ
Аргумент к -exec
как правило, материал между -exec
и \;
Я бы сначала попытался поставить пробел между {}.contents
и \;
но я не проверял, чтобы увидеть, что может происходить
с другой стороны, вероятно, легче изменить начальную точку для find
чем вмешиваться в -exec
пункт. Я предлагаю что-то вроде ниже, напоминая, что $OLDPWD
старый рабочий каталог до последнего cd
(по крайней мере в bash это есть, в tsch это есть $owd
)
cd targetdirectory; find $OLDPWD -type f -name "*.zip" -exec unzip {} -d {}.contents /;
Вы можете украсить его, добавив ; cd $OLDPWD
в конце, чтобы вернуть вас к исходной точке, если вы хотели