Файлы отсутствуют, и я хочу знать то, что произошло с ними

Можно использовать команду type чтобы видеть, присутствует ли исполняемый файл на Вашем поле:

if [ -n "$(type -P tmux)" ]; then

    ...tmux is installed...

else

    ...tmux isn't installed...

fi

Я часто использовал этот фрагмент кода, чтобы сделать это:

$ [ -n $(type -P tmux) ] && echo "installed" || echo "not installed"
installed

Я могу фальсифицировать его использование альтернативы -n (не пустая строка), -z (пустая строка).

$ [ -z $(type -P tmux) ] && echo "installed" || echo "not installed"
not installed
3
19.07.2014, 18:50
3 ответа

В качестве подхода грубой силы, предполагая, что у вас есть доступ ко всем пользовательским каталогам, и что все пользователи используют bash в качестве оболочки по умолчанию, вы можете искать в их файлах истории:

grep 'deletedfilename' /home/*/.bash_history

Предположив, что они были удалены достаточно недавно, чтобы команда все еще сохранялась в истории оболочки пользователя, это покажет вам, кто удалил файлы. Вы также можете расширить это для поиска эквивалентных файлов других оболочек. Например:

grep 'deletedfilename' /home/*/.bash_history /home/*/.zsh_history 
5
27.01.2020, 21:11

Если возможно, что они были перемещены, попробуйте найти их с помощью locate - который найдет их, если они были перемещены некоторое время назад, перед последним запуском updateb (обычно daiy):

locate --существующие --basename 'foo. txt'

или используя короткие опции:

locate -eb 'foo.txt'


Если это не найдет их, можно воспользоваться командой find.

Угадайте, где можно выбрать директорию для рекурсивного поиска, прежде чем использовать find на больших деревьях каталогов.

Позаботьтесь о удаленных файловых системах - например, перед выполнением команды найдите /home -name foo.txt, проверьте, может ли automount все домашние каталоги - возможно тысячи, и хотите ли вы этого.

2
27.01.2020, 21:11

В дополнение к поиску, рекомендованному terdon, вы также могли искать по имени папки.

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

Например, если кто-то нашел:

$ cd /home/mydir
$ rm *
    Or
$ cd somewhere-else
$ mv /home/mydir/* .

Вы не найдете ни одного из своих имен файлов в их истории, но найдете mydir .

Также попробуйте:

grep 'mydir' /home/*/.bash_history /home/*/.zsh_history 


Также: Я не знаю, возможно ли это, но, возможно, это произошло в результате некоторой автоматической очистки после превышения дисковой квоты. Это было бы довольно жестокой политикой, но я полагаю, что это возможно, и, возможно, стоит изучить ее.

1
27.01.2020, 21:11

Теги

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