批量移动文件并在 linux 目录中的位置创建链接

Move files in bulk and create links in their place in the directory in linux

我试图将数百个文件从一个目录移动到另一个目录,但同时在旧目录中创建了一个软文件link。是否有单行命令可以做到这一点?

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

移动到 dir2 并在 dir1 中为它们创建软 link。

我目前正在单独执行此操作,但希望尽可能找到单行命令。

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

(一旦确定正确,请删除 echo。)

Bash 类似,语法略有不同。

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