Bash 如何在Unix中检查文件是否存在?

Bash 如何在Unix中检查文件是否存在?,bash,unix,Bash,Unix,如何检查用户选择的任何文件是否存在于某个位置 $org是我选择用来设置路径的变量 if [ -e $org/$1] then echo "Do you want to overwrite" exit 1 是否使用if语句或getopts?-f检查路径是否存在并且是否为文件 -d检查路径是否存在并且是否为目录-f检查路径是否存在并且是否为文件 -d检查路径是否存在并且是否为目录在$org/$1和之间应该有一个空格] 试试这个: if [ -e "$org/$1" ]; then echo

如何检查用户选择的任何文件是否存在于某个位置

$org是我选择用来设置路径的变量

if [ -e $org/$1]
then
echo "Do you want to overwrite"
exit 1
是否使用if语句或getopts?

-f检查路径是否存在并且是否为文件

-d检查路径是否存在并且是否为目录

-f检查路径是否存在并且是否为文件


-d检查路径是否存在并且是否为目录

在$org/$1和之间应该有一个空格]

试试这个:

if [ -e "$org/$1" ]; then
    echo "Do you want to overwrite"
fi

此处的更多信息:

在$org/$1和$1之间应该有一个空格

试试这个:

if [ -e "$org/$1" ]; then
    echo "Do you want to overwrite"
fi

更多信息:

我想我在写这个答案时误解了你的问题。我不熟悉getopts,但是在简单的情况下,带有-e$org/$1的if语句就可以了。我想我在写这个答案时误解了你的问题。我不熟悉getopts,但在简单的情况下,带有-e$org/$1的if语句可以正常工作。这是我创建回收站的bash脚本的一部分,语法正确吗?如果[-e$org/$1]$org是文件最初存在的位置。如果用户正在尝试还原文件,并且原始目标中有一个同名文件,我想问用户“是否要覆盖?”可能值得注意的是-f只检测常规文件。它不会检测设备文件或命名管道等特殊文件。它也不会匹配死符号链接。这是我创建回收站的bash脚本的一部分,语法正确吗?如果[-e$org/$1]$org是文件最初存在的位置。如果用户正在尝试还原文件,并且原始目标中有一个同名文件,我想问用户“是否要覆盖?”可能值得注意的是-f只检测常规文件。它不会检测设备文件或命名管道等特殊文件。它也不会匹配无效的符号链接。您的语法不正确。$org/$1和[1]之间应该有一个空格。正确的形式是if[-e$org/$1]。看看我的答案。你的语法不正确。$org/$1和[1]之间应该有一个空格。正确的形式是if[-e$org/$1]。看看我的答案。