Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
File UNIX-用于';查找';查找文件的副本_File_Unix_Search_Find - Fatal编程技术网

File UNIX-用于';查找';查找文件的副本

File UNIX-用于';查找';查找文件的副本,file,unix,search,find,File,Unix,Search,Find,嗨,我有两个目录a1dir1和a1dir2。我想找到每个目录唯一的文件。这是两者的列表 $ ls -al ~david/a1dir1 --time-style=long-iso total 56 drwxr-xr-x 4 david users 4096 2011-10-11 21:20 . drwx--x--x 12 david users 4096 2011-10-03 16:42 .. -rw------- 1 david users 60 2011-09-20 17:43

嗨,我有两个目录a1dir1和a1dir2。我想找到每个目录唯一的文件。这是两者的列表

$ ls -al ~david/a1dir1 --time-style=long-iso
total 56
drwxr-xr-x  4 david users  4096 2011-10-11 21:20 .
drwx--x--x 12 david users  4096 2011-10-03 16:42 ..
-rw-------  1 david users    60 2011-09-20 17:43 F3.DAT
-rw-------  1 david users    40 2011-09-20 17:43 f1
-rw-------  1 david users   270 2011-09-20 17:43 f2.c
-rwx------  1 david users  7539 2011-09-20 17:43 make.socket
-rw-------  1 david users   418 2011-09-20 17:43 make.socket.c
-rw-------  1 david users 11843 2011-09-20 17:43 prog1
-rw-------  1 david users   138 2011-09-20 17:43 prog1.c
lrwxrwxrwx  1 david users     4 2011-10-11 21:17 s.link -> f2.c
drwx------  2 david users  4096 2011-09-20 17:43 test1.dir
drwx------  2 david users  4096 2011-09-20 17:43 test3.dir
srwx------  1 david users     0 2011-10-11 21:18 unix.socket

$ ls -al ~david/a1dir2 --time-style=long-iso
total 192
drwxr-xr-x  5 david users   4096 2011-10-11 21:23 .
drwx--x--x 12 david users   4096 2011-10-03 16:42 ..
-rw-------  1 david users     39 2011-09-20 17:43 .hidden.file
-rw-------  1 david users     60 2011-09-20 17:43 F3.DAT
-rw-------  1 david users     40 2011-09-20 17:43 f1
-rw-------  1 david users     88 2011-09-20 17:43 file2
-rwx------  1 david users   7539 2011-09-20 17:43 make.socket
-r--------  1 david users 135838 2011-09-20 17:43 phones
-rw-------  1 david users    138 2011-09-20 17:43 prog1.c
-rw-------  1 david users    120 2011-09-20 17:43 prog2.c
lrwxrwxrwx  1 david users      4 2011-10-11 21:23 s.link -> f2.c
drwx------  2 david users   4096 2011-09-20 17:43 test1.dir
drwx------  2 david users   4096 2011-09-20 17:43 test2.dir
drwx------  2 david users   4096 2011-09-20 17:43 test3.dir
(我通过了a1dir1和a1dir2的辩论)我试过:

for file in $(ls -al $1) 
do 
   find $2 -name "$file" 2> myerrors 
done
虽然这段代码只输出a1dir1中的每个文件?
如果您有任何帮助,我们将不胜感激:)

如果您没有找到示例,您可以:

 diff -q trunk tmp/trunk | grep -v Common | grep -v differ

您可以尝试使用
diff
dircmp
,具体取决于您的操作系统/可用软件。下面是GNU Diff的一个示例:

diff --brief dir1 dir2
编辑:

从您的评论中,尝试以下内容:

diff --brief dir1 dir2 | \
cut -c 9- | \
awk -F': ' '{print $1"/"$2}' | \
while read filename
do
  ls -ld $filename
done

这不会处理带空格的文件名,也不会处理子目录,但无论如何都应该比代码运行得更好:

for file in $(ls -A $1) 
do 
   ls -l $2/$file 2>/dev/null
done

问题是,这是一个作业,因为我的教授没有教我常用和不同的选项,所以我不能使用它们。我必须按照他所说的格式输出。我试了大约三天,但很难做到这么简单,因为他教得不多。对不起,我没有意识到这些只是参数,我习惯于在引号中看到参数。我必须能够完全按照教授的要求格式化它。我试着列出这两个目录,并将它们通过管道传输到文件中,并使用diff,但我必须显示每个目录的所有信息file@user614573,请参阅我在“编辑”中提出的建议。谢谢你,这样做效果更好,但问题是我不能使用“awk”,我为什么这么难,因为我不能将文件名与此或“sed”进行比较像我一样,这仍然没有输出正确的文件,它会生成F3.DAT、f1、make.socket、prog1.c和s.link->f2.c。这是我在每次修改中遇到的问题,我要么文件太多,要么显示得不够。例如,F3.DAT文件我永远都找不对,即使我将一个目录的内容列在一个文件中,我也会在第二个目录中遍历每个文件,并将其名称与文本文件进行grep,它说里面的文件找不到对不起,我忽略了您的要求,只是试图修复您的脚本。