在linux中批量移动文件并在其所在目录中创建链接

在linux中批量移动文件并在其所在目录中创建链接,linux,find,mv,ln,Linux,Find,Mv,Ln,我正在尝试将数百个文件从一个目录移动到另一个目录,但在执行此操作时在旧目录中创建软链接。是否有一个单行命令可以做到这一点 /dir1 file1.txt file2.txt . . . file100.txt 移动到dir2并在dir1中创建到它们的软链接 我目前正在单独做这件事,但希望找到一个单行命令,如果可能的话 cd-dir1 mv*.txt/dir2 ln-s/dir2/*.txt. 我尝试使用find,但也不起作用 没有单行命令。使用shell脚本非常简单。例如,在tcsh中: % c

我正在尝试将数百个文件从一个目录移动到另一个目录,但在执行此操作时在旧目录中创建软链接。是否有一个单行命令可以做到这一点

/dir1
file1.txt
file2.txt
.
.
.
file100.txt

移动到dir2并在dir1中创建到它们的软链接

我目前正在单独做这件事,但希望找到一个单行命令,如果可能的话

cd-dir1
mv*.txt/dir2
ln-s/dir2/*.txt.


我尝试使用
find
,但也不起作用

没有单行命令。使用shell脚本非常简单。例如,在tcsh中:

% cd dir1
% foreach FILETOMOVE ( file*.txt )
     echo mv -iv $FILETOMOVE /dir2
     echo ln -s /dir2/$FILETOMOVE .
     end
(确认正确后,移除回声。)

Bash与此类似,只是语法略有不同

如果文件名或路径包含空格,则这会稍微复杂一些,但仍然非常简单。(:q在tcsh中,使用“”等)