Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash需要刷新才能访问新文件?_Bash_Shell - Fatal编程技术网

Bash需要刷新才能访问新文件?

Bash需要刷新才能访问新文件?,bash,shell,Bash,Shell,我运行了maven测试,它在终端中结束了。在另一个终端中,我ls target/surefire报告,只是在这里找不到报告。所以我cd..第二次进入目录,我的文件在这里!那么,Bash访问新文件需要刷新吗?但是当我在终端中执行类似于headfile0>file1的操作时,我可以在另一个终端中使用ls立即找到我的文件 我的指示如下: 在第一个终端中: [me@host1 /home/me/interest/target/surefire-reports] $mvn test ..... [me

我运行了
maven测试
,它在终端中结束了。在另一个终端中,我
ls target/surefire报告
,只是在这里找不到报告。所以我
cd..
第二次进入目录,我的文件在这里!那么,Bash访问新文件需要刷新吗?但是当我在终端中执行类似于
headfile0>file1
的操作时,我可以在另一个终端中使用
ls
立即找到我的文件

我的指示如下:

在第一个终端中:

[me@host1 /home/me/interest/target/surefire-reports]
$mvn test

.....

[me@host1 /home/me/interest/target/surefire-reports]
$

(ended)
[me@host1 /home/me/interest/target/surefire-reports]
$ls

[me@host1 /home/me/interest/target/surefire-reports]
$ll -al
total 0

[me@host1 /home/me/interest/target/surefire-reports]
$cd ..

[me@host1 /home/me/interest/target]
$cd surefire-reports/

[me@host1 /home/me/interest/target/surefire-reports]
$ls
mycode.txt  TEST-mycode.xml

[me@host1 /home/me/interest/target/surefire-reports]
$
在第二个终端:

[me@host1 /home/me/interest/target/surefire-reports]
$mvn test

.....

[me@host1 /home/me/interest/target/surefire-reports]
$

(ended)
[me@host1 /home/me/interest/target/surefire-reports]
$ls

[me@host1 /home/me/interest/target/surefire-reports]
$ll -al
total 0

[me@host1 /home/me/interest/target/surefire-reports]
$cd ..

[me@host1 /home/me/interest/target]
$cd surefire-reports/

[me@host1 /home/me/interest/target/surefire-reports]
$ls
mycode.txt  TEST-mycode.xml

[me@host1 /home/me/interest/target/surefire-reports]
$

看起来当前目录正在被删除并重新创建。这就解释了为什么在再次进入同一目录之前,您无法看到任何内容--您所在的控制器实际上已不存在,并且已创建了一个同名的新控制器。

发生这种情况是因为您所在的目录
surefire report
已被删除并重新创建,因此当您运行“ls”时您尝试获取当前目录的列表,该目录已不存在。尝试将父目录作为当前目录,并按如下方式运行
ls

[me@host1 /home/me/interest/target]
$ ls surefire-reports

我想这将给出正确的列表

我不需要刷新,我猜报告文件还没有准备好。@jeanrjc但是
mvn测试
结束了。。。我试过很多次了。如果它没有准备好,为什么我总是在重新输入
后看到它准备好了?我的意思是,当我重新进入时,文件可能还没有准备好。