command line - bash: existing file not existing - or existing? or not? - Ask Ubuntu


i have issue, can't fix, , hope, here.

in directory named qemu-servers should file named 100.conf. but, bash not show it, if test it, it's there...

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

if ls -a it's not shown:

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

there file named 101.conf, not 100.conf

if try rm 100.conf, touch or else, bash gives error:

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 

how can rid of problem?

the problem here:

test 100.conf 

it doing string test i.e. if string 100.conf not empty. not empty, you'll found.

this analogous to:

test -n 100.conf [ 100.conf ] [ -n 100.conf ] 

you need file existence check i.e. test -f:

test -f 100.conf && echo "found" || echo "not found" 

Comments

Popular posts from this blog

download - Firefox cannot save files (most of the time), how to solve? - Super User

windows - "-2146893807 NTE_NOT_FOUND" when repair certificate store - Super User