Распаковать и сохранить выходное имя в переменной

После некоторых расследований и просмотров я получил ответ.

1 )Thunar предполагает перемещение в корзину и никогда не копирование -это означает, что ваш файл будет удален (FTBT )и каталог корзины должен находиться в той же файловой системе.

2 )Если ваш FTBT находится в вашем домашнем каталоге, Thunar попытается переместить его в ~/.local/share/Trash. Если папка находится в другом разделе, операция завершится ошибкой.

3 )Если ваш FTBT находится в какой-то другой файловой системе (другой раздел, диск или монтирование nfs )Thunar попытается создать папку .Trash-$UIDв верхней папке файловой системы. У вас может не быть разрешений для этого, и операция завершится ошибкой.

Предположим, у вас есть второй диск, смонтированный в каталоге /disk2:

$ ls -ld /disk2
drwxr-xr-x 5 root root 4096 [some date] /disk2

А у вас естьUID 1000:

$ echo $UID
1000

Затем создайте папку для корзины:

$ sudo mkdir /disk2/.Trash-1000
$ sudo chown 1000 /disk2/.Trash-1000
$ chmod og-rwx /disk2/.Trash-1000

Thunar должен сделать остальную (структуру подкаталогов ), и ваша корзина должна работать.

Надеюсь, это поможет.

0
22.03.2021, 19:55
3 ответа
filename=$(unzip toto.zip | awk 'sub(/^[[:space:]]*inflating:[[:space:]]+/,""){print; exit}')

должен работать надежно и эффективно при использовании любого awk (, но не тестировался ). Также подумайте о том, чтобы сделать то же самое с выводом unzip -l.

1
28.04.2021, 22:57

Это должно работать (, хотя иногда существуют различия между версиями sedи unzip, доступными в разных системах):

filename=$(unzip toto.zip | sed -n 's/^[[:space:]]*inflating:[[:space:]]*//p')

Эта команда распаковывает файл и отправляет вывод на sed. sedищет строки, начинающиеся с пробела, а затем inflating: . Если такая строка найдена, sed удалит все, включая inflating:и все последующие пробелы, а затем напечатает то, что осталось, что должно быть именем файла. Все остальное отбрасывается (благодаря опции -n). Наконец, мы сохраняем вывод в переменной filename.

1
28.04.2021, 22:57

Спасибо, оба sed и awk работали, даже если они оба оставляли дополнительный пробел в конце для обрезки

Зачем использовать unzip -l здесь?

0
28.04.2021, 22:57

Теги

Похожие вопросы