Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
Linux 将目录树符号链接到一个目录_Linux_Bash_Symlink_Directory Tree - Fatal编程技术网

Linux 将目录树符号链接到一个目录

Linux 将目录树符号链接到一个目录,linux,bash,symlink,directory-tree,Linux,Bash,Symlink,Directory Tree,我希望有一个bash脚本在目录树中循环,并将符号链接到一个没有树的新目录,但将文件名更改为告诉目录的新目录 大概是这样的: 产地: 目录 --目录 ----目录a ------文件AA1 ------文件AA2 ----文件1 ----文件A2 --目录B ----文件B1 --目录的 ----文件C1 ----文件2 ----文件C3 目的地: 直接的 --目录a-目录aa-文件aa1 --目录a-目录aa-文件aa2 --目录A-文件A1 --目录A-文件A2 --目录B-文件B1 --目录

我希望有一个bash脚本在目录树中循环,并将符号链接到一个没有树的新目录,但将文件名更改为告诉目录的新目录

大概是这样的:

产地:

目录

--目录

----目录a

------文件AA1

------文件AA2

----文件1

----文件A2

--目录B

----文件B1

--目录的

----文件C1

----文件2

----文件C3

目的地:

直接的

--目录a-目录aa-文件aa1

--目录a-目录aa-文件aa2

--目录A-文件A1

--目录A-文件A2

--目录B-文件B1

--目录-FileC1

--目录C-文件C2

--DirectoryC-FileC3

这应该可以做到:

cd Directory; find * -type f -print0 | xargs -l -0 bash -c 'filename=`echo "$0" | tr '/' -`; ln -s $(pwd)/$0 ../DirectoryDest/$filename'
这将产生以下文件:

user@machine:~$ ls -l DirectoryDest/
total 0
lrwxrwxrwx 1 user user 51 Jul 27 23:02 DirectoryA-DirectoryAA-FileAA1 -> /home/user/Directory/DirectoryA/DirectoryAA/FileAA1
lrwxrwxrwx 1 user user 51 Jul 27 23:02 DirectoryA-DirectoryAA-FileAA2 -> /home/user/Directory/DirectoryA/DirectoryAA/FileAA2
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryA-FileA1 -> /home/user/Directory/DirectoryA/FileA1
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryA-FileA2 -> /home/user/Directory/DirectoryA/FileA2
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryB-FileB1 -> /home/user/Directory/DirectoryB/FileB1
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryC-FileC1 -> /home/user/Directory/DirectoryC/FileC1
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryC-FileC2 -> /home/user/Directory/DirectoryC/FileC2
lrwxrwxrwx 1 user user 38 Jul 27 23:02 DirectoryC-FileC3 -> /home/user/Directory/DirectoryC/FileC3

没有具体的东西,无法想象一种方法,需要一些kickstartonionijake,我无法得到你的答案,我在openwrt中使用busybox,xargs没有那个参数…哪些参数?尝试使用'-L1'而不是'-L'。也可以不使用xargs重写它。看见