shell 有没有一种方法可以用ls检查dir,然后只用一个命令创建一个目录?

ego6inou  于 2023-05-29  发布在  Shell
关注(0)|答案(1)|浏览(117)

我对shell命令很陌生,想知道是否有一种方法可以连接两个命令:Scenario->您使用ls命令检查目录,如果还没有,则使用mkdir命令连接ls。
你能把这两个联系起来吗?我尝试了ls && mkdir
感谢您的任何提示和任何帮助!
我试着检查我的路径中是否有目录bar,如果没有,它应该创建一个命名的bar。命令应该看起来像这样:ls bar && mkdir bar
tho的输出是ls:未找到酒吧。很明显它还没有被创造出来。

1tu0hz3e

1tu0hz3e1#

&&只在第一个命令不成功时执行第二个命令-参见this question。对于ls bar && mkdir bar命令,如果bar不存在,则ls bar将不成功,并且不会继续到mkdir bar
您可以使用ls bar || mkdir bar而不是&&来确保执行第二个命令,即使第一个命令没有成功完成。
如果您不确定bar是否存在,则更好的选择是mkdir -p bar && ls bar。如果mkdir -p bar不存在,它将生成bar,如果bar已经存在,它将不会抛出错误(在this post中有更好的解释)。然后,在调用ls时,您知道目录已经存在,因此您确信ls将成功完成。如果文件夹中没有任何内容,您知道它是新创建的,如果有内容,您知道它已经存在。

相关问题