标签: symlink

如何用等效的硬链接替换符号链接?

有一个(单个,不需要批处理文件系统处理)符号链接,使用什么命令行将其转换为指向同一文件的硬链接?

command-line hard-link symlink files ln

6
推荐指数
1
解决办法
3946
查看次数

带有 ls, mv 的符号链接:强制函数使用“逻辑”地址(记住原始路径)

似乎对于许多在符号链接上操作的基本功能,默认使用物理路径。但是, cd 工作正常。当进入符号链接时, cd 会记住我来自哪里,因此它使用符号链接的逻辑地址(请参阅相关文章以获取示例:符号链接和 cd)。

像 ls 这样的函数只是部分地以这种方式工作。如果我通过点击选项卡 ($ ls ../ {tab}) 列出目录内容,它将列出符号链接所在目录的内容,但如果执行命令 ($ ls ../ {enter}) 目录内容列表来自物理路径。有没有办法让 ls、mv、rm 等命令像 cd 一样操作并记住符号链接的逻辑路径?

感谢您的任何建议。

ls bash cp cd-command symlink

6
推荐指数
1
解决办法
2118
查看次数

不遵循链接或创建巨大的 tar 文件的递归 scp?

所以我在我的远程文件服务器(处于另一种状态)上做了一个递归的 scp,它在我的远程 web 目录上创建了一个无限循环的链接......

http://www.linuxquestions.org/questions/linux-general-1/recursive-scp-wo-following-links-658857/说我可以尝试创建一个巨大的 tar 文件。不过这有一个问题——我在办公室的一台 Linux 机器上运行递归 scp,我正在将文件全部复制到我的外部硬盘驱动器,它是 FAT32 格式(因为我需要一些可以通过UNIX 和 Windows)。FAT32 不支持大文件。所以我必须尝试不同的东西。

还有一个 rsync 选项,但我办公室的 Linux 机器非常原始(它是 igel),所以它没有 rsync ......

scp symlink

6
推荐指数
3
解决办法
2万
查看次数

为什么符号链接的符号链接不起作用?

在我的 OSX 10.9 机器上使用自制软件安装 SWI-Prolog 时,我遇到了一个奇怪的问题。我正在尝试调试它以找出它是谁的错误(SWI-Prolog 的、自制软件的或 OSX 的),所以我可以适当地报告它并修复它。

swipl在我的道路是/usr/local/bin/swipl其符号链接到/usr/local/Cellar/swi-prolog/6.2.3/bin/swipl 该符号链接/usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl

% which swipl
/usr/local/bin/swipl
% find /usr/local -name swipl -exec ls -l {} \;
lrwxr-xr-x  1 rampion  admin  36 Oct 23 20:54 /usr/local/bin/swipl -> ../Cellar/swi-prolog/6.2.3/bin/swipl
lrwxr-xr-x  1 rampion  admin  48 Oct 23 20:54 /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl -> ../lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
-r-xr-xr-x  1 rampion  admin  8760 Oct 23 20:54 /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
Run Code Online (Sandbox Code Playgroud)

我可以在/usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl以下位置运行实际的可执行文件:

% /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.2.3)
...
Run Code Online (Sandbox Code Playgroud)

我可以在/usr/local/Cellar/swi-prolog/6.2.3/bin/swipl以下位置使用符号链接: …

osx symlink homebrew

6
推荐指数
1
解决办法
523
查看次数

如何在 Linux 下挂载磁盘的 vfat 文件系统上创建文件链接?

我有一个包含不同音乐片段的外部驱动器。该驱动器是 vfat 格式的驱动器,可以与任意设备一起使用。

在设备上,我存储了来自不同艺术家的音乐,并根据他们的名字进行了排序。但是,我想将单个音乐作品也分类到其他文件夹中,而不是复制它们。因此,例如,标题“Addicted to you”应该可以从文件夹“Avicii”中访问,但也可以从名为“dance”的不同文件夹访问。

有没有办法在磁盘上创建某种链接?我曾尝试这样做,ln但出现错误:

ln: failed to create symbolic link
ln: failed to create hard link
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以链接这些文件吗?并确保它适用于所有 USB 硬件(收音机、电视、媒体设备、汽车收音机等)?

filesystems hard-link symlink vfat

6
推荐指数
1
解决办法
7307
查看次数

文件权限

我有一个运行符号链接的 PHP 脚本。

要确认它是哪个用户:

file_put_contents("testFile", "test");
$user = fileowner("testFile");
unlink("testFile");
echo "running as user '" . $user . "'";
var_dump( exec('whoami'));
Run Code Online (Sandbox Code Playgroud)

就这样跑...

$ php script.php
Run Code Online (Sandbox Code Playgroud)

正确运行所有符号链接,输出为:

running as user '999'string(5) "admin"
Run Code Online (Sandbox Code Playgroud)

通过 shell 脚本运行:

#!/bin/sh
php /path/to/script.php
Run Code Online (Sandbox Code Playgroud)

给出以下输出并且不起作用:

PHP 警告:symlink(): 权限被拒绝在第 8 行的 /path/to/script.php 中以用户 '999'string(5) "admin" 身份运行

我不确定两者之间的区别是什么,因为它们运行的​​用户是相同的。

关于如何使它们都具有正确的符号链接权限的任何建议?


cat /proc/version
Run Code Online (Sandbox Code Playgroud)

给出:

Linux version 2.6.39 (root@cross-builder) (gcc version 4.6.3 (x86 32-bit toolchain - ASUSTOR Inc.) ) #1 SMP PREEMPT Thu Oct 31 21:27:37 CST 2013
Run Code Online (Sandbox Code Playgroud)

这是我可以为任何类型的发布信息生成的唯一输出。


所有代码:

$files = …
Run Code Online (Sandbox Code Playgroud)

permissions php symlink

6
推荐指数
1
解决办法
1132
查看次数

使用 LS 命令列出目录时的文件类型和取消引用

我正在尝试将参数组合到ls命令中以列出目录内容。我基本上想要实现的是列出取消引用所有链接的目录,但明确显示列出的项目是一个链接。我尝试组合--dereference--classify选项,但没有显示链接符号 ( @),我得到了 a,*因为链接针对的是一个可执行文件。

关于如何获得这样的结果的任何想法?我对ls命令以外的其他选择持开放态度。

编辑: 我实际上使用ls命令中的其他选项。我当前的命令及其选项如下:

ls -ogq -LB --group-directories-first --time-style=long-iso
Run Code Online (Sandbox Code Playgroud)

我打算在我正在构建的应用程序中解析输出,并且不能使用带有箭头 ( ->)的默认链接输出。目录中的其他项目(例如文件夹和文件)也必须列出。

编辑(2):

澄清一下,我正在开发一个 Java 应用程序,它使用 SSH2 API 连接到服务器并列出目录。然后,使用 jsTree jQuery 插件将列表中的结果用于填充树。目前我上面引用的命令给了我以下输出:

felipe@simba:/mnt/drive$ ls -ogq --group-directories-first --time-style=long-iso 
total 12
drwxr-sr-x 2 4096 2014-06-11 18:04 folder1
drwxr-sr-x 6 4096 2014-06-27 19:35 folder2
dr-Sr-s-wt 2 4096 2014-06-27 13:51 folderWithPermissions
-rw-r--r-- 1    0 2014-06-30 10:42 file.txt
lrwxrwxrwx 1   49 2014-06-30 11:36 linkTeste -> folder2/dir/otherfile.txt
Run Code Online (Sandbox Code Playgroud)

通过应用正则表达式,我可以通过查看权限来识别文件夹、文件或链接是什么。但是当我有一个链接时,我只需要列出链接名称,而不是name …

command-line ls shell symlink

6
推荐指数
1
解决办法
993
查看次数

找到一个目录的所有符号链接并将目标更改为另一个目录

我有一大堆符号链接的/home在文件和子目录/foo。我想定位新目录/bar.

我的方法是查看所有无效的符号链接并验证它们是否指向/foo. 然后我做了以下事情:

sudo find . -type l -! -exec test -e {} \; -exec sh -c '\
   old_link_target=$(readlink "$0"); \
   new_link_target=${old_link_target//foo/bar}; \
   ln -snf $new_link_target $0' {} \;
Run Code Online (Sandbox Code Playgroud)

但是,我想要一种更精确的方法,它不包括将目光放在无效符号链接上的初始步骤。所以,为了这个问题,假设/foo仍然存在,所以需要另一种方法。

find symlink

6
推荐指数
1
解决办法
1672
查看次数

用于更改目录的命令行快捷方式

我正在寻找一种简单的方法来导航到跨越多个硬盘驱动器的目录,并希望在终端中设置与快捷方式等效的内容。

在 Windows 中,我将使用mklink并创建符号链接来跳转到目录,或者创建连接以将位置附加到当前文件路径的末尾。

由于这实际上只是关于导航,因此它也不需要是链接或任何东西,也许我可以设置一些环境变量以便我可以cd $myDir(最好)。

这样的事情是可能的,还是我真的需要更好地学习我的目录?

command-line shell alias cd-command symlink

6
推荐指数
2
解决办法
2万
查看次数

为什么即使在我运行 ldconfig 之后,我也会收到“加载共享库时出错:libssl.so.6 无法打开共享对象文件”的消息?

符号链接 libssl.so.6 出现在 中/usr/lib/x86_64-linux-gnu,我运行了ldconfig但我仍然收到此错误:

error while loading shared libraries: libssl.so.6: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

是权限问题还是链接定义不正确?

在二进制文件上运行 ldd 后更新:

    linux-vdso.so.1 =>  (0x00007fff1efe2000)
    libssl.so.6 => not found
    libcrypto.so.6 => not found
    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007feb2a3c4000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007feb2a1bb000)
    libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007feb29f82000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007feb29d65000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007feb29b60000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007feb297a1000)
    /lib64/ld-linux-x86-64.so.2 (0x00007feb2b159000)
Run Code Online (Sandbox Code Playgroud)

ubuntu symlink

6
推荐指数
1
解决办法
3万
查看次数

标签 统计

symlink ×10

command-line ×3

cd-command ×2

hard-link ×2

ls ×2

shell ×2

alias ×1

bash ×1

cp ×1

files ×1

filesystems ×1

find ×1

homebrew ×1

ln ×1

osx ×1

permissions ×1

php ×1

scp ×1

ubuntu ×1

vfat ×1