удар: существующий файл, не существующий - или существующий? или нет?

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

В названном каталоге qemu-servers должен быть названный файл 100.conf. Но, удар не показывает его, но если я тестирую его, это там...

root@proxmox:/etc/pve/nodes/proxmox/qemu-server# test 100.conf && echo "Found" || echo "Not found"
Found

Если я делаю ls -a это не показывают:

root@proxmox:/etc/pve/nodes/proxmox/qemu-server# ls -a
.  ..  101.conf

существует названный файл 101.conf, но нет 100.conf

Если я пытаюсь rm 100.conf, touch это или что-либо еще, удар отдает ошибку:

root@proxmox:/etc/pve/nodes/proxmox/qemu-server# rm 100.conf
rm: cannot remove ‘100.conf’: No such file or directory
root@proxmox:/etc/pve/nodes/proxmox/qemu-server# touch 100.conf
touch: cannot touch ‘100.conf’: File exists

Как я могу избавиться от этой проблемы?

1
задан 26 October 2016 в 19:40

1 ответ

Проблема здесь:

test 100.conf

это делает строковый тест т.е. если строка 100.conf не пуста. Поскольку это не пусто, Вы будете всегда добираться Found.

Это походит:

test -n 100.conf
[ 100.conf ]
[ -n 100.conf ]
<час>

Вам нужна проверка существования файла т.е. test -f:

test -f 100.conf && echo "Found" || echo "Not found"
4
ответ дан 3 December 2019 в 06:56

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

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