Можно использовать команду 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
В качестве подхода грубой силы, предполагая, что у вас есть доступ ко всем пользовательским каталогам, и что все пользователи используют bash в качестве оболочки по умолчанию, вы можете искать в их файлах истории:
grep 'deletedfilename' /home/*/.bash_history
Предположив, что они были удалены достаточно недавно, чтобы команда все еще сохранялась в истории оболочки пользователя, это покажет вам, кто удалил файлы. Вы также можете расширить это для поиска эквивалентных файлов других оболочек. Например:
grep 'deletedfilename' /home/*/.bash_history /home/*/.zsh_history
Если возможно, что они были перемещены, попробуйте найти их с помощью locate
- который найдет их, если они были перемещены некоторое время назад, перед последним запуском updateb
(обычно daiy):
locate --существующие --basename 'foo. txt'
или используя короткие опции:
locate -eb 'foo.txt'
Если это не найдет их, можно воспользоваться командой find
.
Угадайте, где можно выбрать директорию для рекурсивного поиска, прежде чем использовать find
на больших деревьях каталогов.
Позаботьтесь о удаленных файловых системах - например, перед выполнением команды найдите /home -name foo.txt
, проверьте, может ли automount все домашние каталоги - возможно тысячи, и хотите ли вы этого.
В дополнение к поиску, рекомендованному terdon, вы также могли искать по имени папки.
Таким образом, если кто-то удалил (или переместил) файлы с использованием подстановочного знака, вы не сможете найти ни одно из имен ваших файлов, указанных в любом файле истории.
Например, если кто-то нашел:
$ cd /home/mydir
$ rm *
Or
$ cd somewhere-else
$ mv /home/mydir/* .
Вы не найдете ни одного из своих имен файлов в их истории, но найдете mydir
.
Также попробуйте:
grep 'mydir' /home/*/.bash_history /home/*/.zsh_history
Также: Я не знаю, возможно ли это, но, возможно, это произошло в результате некоторой автоматической очистки после превышения дисковой квоты. Это было бы довольно жестокой политикой, но я полагаю, что это возможно, и, возможно, стоит изучить ее.