Intereting Posts
StartLimitIntervalSec и StartLimitBurst в Systemd никогда не работают Как оставить сообщение другому (локальному) пользователю? Использование адаптера Wi-Fi Netis WF2123 на системе AMD64 Ubuntu Другие пользователи: avahi, root, syslog, messagebus, nobody, ntp, rtkit и whoopsie Как объединить 2 образа диска в один с 2 разделами? Печать эха в файле и запрос параллельно Получите дефолт ubuntu motd в раковине рыбы Выполнение некоторых частей скрипта как непривилегированного пользователя с оболочкой Почему NOEXEC не предотвращает запуск указанной программы? Существует ли стандартная аббревиатура для 'find. -name foo 'или мне нужна функция для этого? Получение относительных связей между двумя путями bumblebeed.service сообщает об ошибке, но optirun работает? Жесткий диск больше не может монтировать после редактирования / etc / fstab Является ли `~ / Documents` относительным или абсолютным путем? сделать фатальную ошибку: openssl / sha.h: нет такого файла или каталога

Как узнать, где находится последний файл, созданный моим текущим пользователем?

Я использую Ubuntu 16.04 (xenial) с Bash 4.3.48 (1) и zip 3.0.

В файле, содержащем скрипт bash ( #!/bin/bash ) с множеством различных функций, я также использовал эту функцию для создания полной резервной копии базы данных + корневой резервной копии документа в одном zip-файле :

 imb() { drt="/var/www/html" date="$(date +%F-%T)" mysqldump -u root -p --all-databases | zip "$drt/db-$date.zip" - # Note the hyphen before this comment; zip -r "all_zipped-$date.zip" "$drt"/ -x "*/cache/*" rm -f "$drt/db-$date.zip" } 

Я получил упомянутый файл ( source ~/function.sh ) и выполнил imb в режиме отладки ( set -x ):

Мне было предложено ввести пароль БД, а затем прошло некоторое время (с указанием создания резервной копии БД). Кроме того, появился подробный почтовый индекс (слишком длинный, чтобы вставить или проследить в терминале), указывающий, что все в корневом каталоге документа было заархивировано.

Пока нет резервной копии в /var/www/html/ .

Мой вопрос

Из-за комментария я чувствую, что должен задать два вопроса, которые я нашел похожими, но на самом деле разными:

  1. Куда zip поместил мои файлы (при условии, что это не «создание файла» в смысле ручного создания, как, например, при touch )? Конечно, файлы, созданные и расположенные где-то процессами, не обязательно должны принадлежать моему пользователю.

  2. Как я могу узнать, где находился последний файл, созданный моим текущим пользователем ?

Я ожидал, что он будет расположен в /var/www/html/ :

 zip -r "all_zipped-$date.zip" "$drt"/ -x "*/cache/*" 

но не было Я не знаю эффективного способа узнать, где он был создан, без запуска всего дерева файлов моей системы от root ( / ), так как это может занять несколько часов на этом компьютере.

Обновить

При написании этого вопроса я посетил мою домашнюю директорию ( $HOME/ ), там я нашел файл, но я не знаю, почему он был создан там вместо этого под корнем документа.

 zip -r "all_zipped-$date.zip" "$drt"/ -x "*/cache/*" 

создает архив в текущем каталоге, каким бы он ни был (в данном случае ваш домашний каталог).

Если вы хотите создать архив в ${drt} , вам нужно указать zip :

 zip -r "${drt}/all_zipped-$date.zip" "$drt"/ -x "*/cache/*" 

Нет простого способа узнать, где последний файл был создан любым пользователем; вам нужно будет использовать find и сортировку, уменьшив временную метку. Используя время последней модификации как приближение для времени создания:

 find . -user user9303970 -printf "%T@ %p\n" | sort -n -k1,1 -r | head -n 1