【问题标题】:Create symlink for a folder, not a file为文件夹而不是文件创建符号链接
【发布时间】:2017-01-16 22:12:09
【问题描述】:

我有两个不同的文件夹,比如文件夹 1 和文件夹 2。一堆文件一直被创建到文件夹 1 中(它们还没有)。

我希望将这些文件“物理地”放在文件夹 2 中,但它们“象征性地”放在文件夹 1 中(因为要在文件夹 1 中仍然创建新文件,它也需要在其中包含以前的文件)。

我知道我可以为从一个文件夹到另一个文件夹的特定文件创建一个symlink

但是一般情况下,将文件夹 1 中的所有未来文件(具有不同名称)物理地放在文件夹 2 中并象征性地放在文件夹 1 中会如何?

我想我必须有一条线将它们物理移动到文件夹 2,并创建到文件夹 1 的符号链接。

我试过了:

ln -s ./output/* ../../data/jadecheclair/plasim_output/fix_alb/output_try/*

./output/ 是他们在其中创建的文件夹(文件夹 1),../../data/jadecheclair/plasim_output/fix_alb/output_try/ 是我希望他们实际存在的文件夹。

【问题讨论】:

  • 为什么不在两个文件夹之间创建符号链接,例如 ln -s folder_1 folder_2 ?

标签: unix symlink


【解决方案1】:

您可以尝试将所有旧文件移至 nes 目录,将其删除并创建您的链接:

mv ./output/* ../../data/jadecheclair/plasim_output/fix_alb/output_try/
rm -ri ./output/
ln -s ../../data/jadecheclair/plasim_output/fix_alb/output_try/ ./output/

那你应该有

$ ls -la
[..]
output -> ../../data/jadecheclair/plasim_output/fix_alb/output_try/

./output/ 中创建的文件物理上应该在..../output_try/

【讨论】:

  • 因此会给我目录 ./output 不存在的错误(如果我在此之前将其删除)。如果我在写这一行之前创建它,它仍然会将文件写入 ./output :/
  • 对不起,我的误解。你试过了吗?我不明白 Thus would 是什么意思。
  • 这会,抱歉。我认为问题在于我需要在我的 shell 脚本中使用一条直线来将文件保存到源文件夹而不是链接文件夹中。看起来没有办法通过符号链接来做到这一点。但是,一旦将这些文件创建到源文件夹中,您编写的内容就会起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 1970-01-01
相关资源
最近更新 更多