Команда тестирования: Считываемый тест не работает

Предполагая, что вы на «обычном» Ubuntu (а не Xubuntu, Kubuntu и т. д.), вы можете попробовать запустить

gksudo nautilus

в терминале или пусковом устройстве.

Это откроется файловый менеджер с привилегиями root, и вы можете проверить его корзину.

Также проверьте, есть ли какие-либо скрытые папки в / var / www / html / - Nautilus должен иметь опцию «Просмотр скрытых файлов», которая потенциально может выявить .Trash или .Trash-1000 каталог.

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

Пожалуйста, дайте мне знать, был ли этот ответ полезен или у вас возникли вопросы.

- Nick

0
задан 24 March 2018 в 07:40

4 ответа

Я нашел свою проблему в конце концов. Дело в том, что я читал путь с клавиатуры (команда чтения), и как-то тильда (~) не расширялась. Решением к этому было:

echo 'Give path:' read var1 var2=$(eval echo "$var1");

Теперь var2 содержит полный путь (расширение ~), и после этого я мог бы использовать свои тесты.

0
ответ дан 17 July 2018 в 18:12

Чтобы дополнить ответ Алатора, следует отметить, что расширение Tilde выполняется только в следующих случаях:

Назначение переменной, неуказанное ~ сразу после :, как в mypath=~/Documents:~/usr/share/stuff Последовательное переключение сначала =, ~ некорректно, как в foo=~/bar Начало «слова»: ~/ascript.sh Отдельное слово «:» stat ~/afile.txt

read принимает буквальную последовательность символов из stdin и не выполняет расширение Тильды; более важно Расширение Тильды выполняется самим оболочкой, а не отдельными встроенными командами.

Один из способов борьбы с этим мог быть через eval, как показал Алатор, или можно было бы использовать замену параметров (что технически просто ручной способ делать то же самое):

~$ echo "${foo/\~/$HOME}" /home/username/Documents

В качестве альтернативы, если вы не против запуска другого процесса (или вам нужно иметь дело с этими конкретными языками), вы можете использовать Python и Perl так, :

python -c 'import sys,os; print os.path.expanduser(sys.argv[1])' "$foo" perl -e 'print glob qq("$ARGV[0]")' "$foo" "$foo"
0
ответ дан 17 July 2018 в 18:12

Я нашел свою проблему в конце концов. Дело в том, что я читал путь с клавиатуры (команда чтения), и как-то тильда (~) не расширялась. Решением к этому было:

echo 'Give path:' read var1 var2=$(eval echo "$var1");

Теперь var2 содержит полный путь (расширение ~), и после этого я мог бы использовать свои тесты.

0
ответ дан 23 July 2018 в 19:02
  • 1
    В следующий раз стоит опубликовать весь скрипт. Независимо от того, что вы можете упростить свой код таким образом, как это: read var1 ; [ -r "$(eval echo "$var1")" ]; echo $?. Или в bash вы можете использовать [[: read var1 ; [[ -r $(eval echo "$var1") ]]; echo $?. – pa4080 24 March 2018 в 17:06

Чтобы дополнить ответ Алатора, следует отметить, что расширение Tilde выполняется только в следующих случаях:

Назначение переменной, неуказанное ~ сразу после :, как в mypath=~/Documents:~/usr/share/stuff Последовательное переключение сначала =, ~ некорректно, как в foo=~/bar Начало «слова»: ~/ascript.sh Отдельное слово «:» stat ~/afile.txt

read принимает буквальную последовательность символов из stdin и не выполняет расширение Тильды; более важно Расширение Тильды выполняется самим оболочкой, а не отдельными встроенными командами.

Один из способов борьбы с этим мог быть через eval, как показал Алатор, или можно было бы использовать замену параметров (что технически просто ручной способ делать то же самое):

~$ echo "${foo/\~/$HOME}" /home/username/Documents

В качестве альтернативы, если вы не против запуска другого процесса (или вам нужно иметь дело с этими конкретными языками), вы можете использовать Python и Perl так, :

python -c 'import sys,os; print os.path.expanduser(sys.argv[1])' "$foo" perl -e 'print glob qq("$ARGV[0]")' "$foo" "$foo"
0
ответ дан 23 July 2018 в 19:02

Другие вопросы по тегам:

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