1

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

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

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

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

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

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

4

1 回答 1

1

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

% cd dir1
% foreach FILETOMOVE ( file*.txt )
     echo mv -iv $FILETOMOVE /dir2
     echo ln -s /dir2/$FILETOMOVE .
     end

(一旦你确定你做对了,就删除echo 。)

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

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

于 2015-11-24T00:17:33.303 回答