批量移动文件并在 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,使用“”等)
我试图将数百个文件从一个目录移动到另一个目录,但同时在旧目录中创建了一个软文件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,使用“”等)