Эти шаги помогли мне.
Добавить пользователя:
useradd user
Добавить пароль:
passwd user
Добавьте следующую строку в файл /etc/sudoers
с помощью командыvisudo
:
user ALL=(ALL) ALL
или, чтобы стать пользователем root без ввода пароля,
ALL ALL=(ALL) NOPASSWD:ALL
Затем,переключиться на этого пользователя
su user
и запросить привилегии суперпользователя:
sudo su -
Введите пароль для нового пользователя:
[sudo] password for user:
Короткий скрипт вроде этого должен выполнять эту работу (обратите внимание, что вам необходимо иметь резервную копию вашего исходного файла, так как скрипт должен удалить его, чтобы обработать все рекурсивно ).
while [ "$(find. -type f -name '*.zip' | wc -l)" -gt 0 ];
do
find -type f -name '*.zip' -exec mkdir '{}'_dir \; \
-exec unzip -d '{}'_dir -- '{}' \; \
-exec rm -- '{}' \;
done
В некоторых системах можно использовать -delete
вместо -exec rm -- '{}' \;
.
Это отличный кандидат на роль рекурсивного сценария.
Сохраните это как скрипт(например.my_unzip.sh
)Не будет работать, если вы вставите в командную строку, так как -равно:
#!/usr/bin/env bash
: ${1:?Please supply a file} # ${1} is the zip being fed to the script -- a little user-friendliness never went amiss
DIR="${1%.zip}" # this is where the current zip will be unzipped
mkdir -p "${DIR}" || exit 1 # might fail if it's a file already
unzip -n -d "${DIR}" "${1}" # unzip current zip to target directory
find "${DIR}" -type f -name '*.zip' -print0 | xargs -0 -n1 "${0}" # scan the target directory for more zips and recursively call this script (via ${0})
Сделать его исполняемым
chmod +x my_unzip.sh
И запустите его с вашим zip-файлом в качестве параметра:
my_unzip.sh /some/path/yourfile.zip
Сохраняет исходный файл, встроенные комментарии объясняют, что происходит.
Трусливый, поскольку он никогда не пытается перезаписать то, что уже существует. Это поведение можно изменить, обновив команду unzip
, чтобы удалить -n
, чтобы получить запрос, или изменить ее на -o
, чтобы принудительно перезаписать.