[转]linux ls cp等命令的-H/-L参数

本文详细解释了Linux下cp命令的-H与-L选项的区别。-H仅dereference命令行中的symlinks,而-L则递归地dereference所有遇到的symlinks。通过具体的例子展示了这两种选项在实际应用中的不同。

[转]linux ls cp等命令的-H/-L参数

-H Symbolic links on the command line are followed. This option is assumed if none of the -F, -d, or -l options are specified.

-L Follow all symbolic links to final target and list the file or directory the link references rather than the link itself. This option cancels the -P option.

——摘自ls的manual

参数-L比较清楚,就是对所有的symlinks都dereference
但如果单独使用-H,结果并没有任何变化

后来看到superuser上一篇回答,终于弄懂了-H的作用:
linux -cp -H vs cp -L(What is a command line symbolic link)


其中有句话,看到后恍然大悟:

Without the -R switch, the behavior of cp -H and cp -L is identical.

感觉manual里没讲清楚,-H其实应该搭配着-R用的,这就是-H和-L的不同:

With the -R switch, cp -H only dereferences symbolic links that occur in the cp command itself, while -L also dereferences symbolic links inside the recursively copied directories.

比如,在 cp -HR source/ dest/ 中,如果 source/ 是symlink,那cp就会把symlink指向的原文件copy到 dest/,但是,对于 source/ 中包含的symlinks,仅仅copy 这些symlinks本身

However, if cp encounters any symlinks in source’s subdirectories, it will create symlinks in the destination folder.

cp -HL source/ dest/ 则不仅dereference command line中的source(symlink),还会对递归中遇到的所有symlinks进行dereference

Packaged contents of /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/mbedtls-3.6.1/ipkg-model_sstar_ssr920/libmbedtls into /home/wuyilun/Desktop/CAMEOS/platform/bin/model_sstar_ssr920/packages/base/libmbedtls_3.6.1-2_model_sstar_ssr920.ipk rm -rf /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-libmbedtls mkdir -p /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/stamp /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-libmbedtls install -d -m0755 /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-libmbedtls/usr/lib cp -fpR /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/mbedtls-3.6.1/ipkg-install/usr/lib/lib*.so* /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-libmbedtls/usr/lib/ SHELL= /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/host/bin/flock /home/wuyilun/Desktop/CAMEOS/platform/tmp/.root-copy.flock -c 'cp -fpR /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-libmbedtls/. /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/' rm -rf /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/tmp-libmbedtls touch /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/root-model_sstar_ssr920/stamp/.libmbedtls_installed echo '3.6.1-2' | cmp -s - /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/pkginfo/libmbedtls.version || echo '3.6.1-2' > /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/pkginfo/libmbedtls.version if [ -f /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/pkginfo/mbedtls.default.install.clean ]; then rm -f /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/pkginfo/mbedtls.default.install /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/pkginfo/mbedtls.default.install.clean; fi; echo "libmbedtls" >> /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/pkginfo/mbedtls.default.install make[4]: Leaving directory '/home/wuyilun/Desktop/CAMEOS/platform/package/libs/mbedtls' make[4]: Entering directory '/home/wuyilun/Desktop/CAMEOS/platform/iplatform/private/libtpsocket' mkdir -p /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0 cp -fpR ./src/* /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0/ mkdir -p /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include/libtpsocket/ cp -fpR ./src/*.h /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include/libtpsocket/ echo "#define TPSOCKET_USE_MBEDTLS 1" > /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include/libtpsocket/tpsocket_ssl_setting.h touch /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0/.prepared_12d2072161d9781586b1d788b048e173 rm -f /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/stamp/.libtpsocket_installed (cd /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0/./; if [ -x ./configure ]; then find /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0/ -name config.guess | xargs -r chmod u+w; find /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0/ -name config.guess | xargs -r -n1 cp --remove-destination /home/wuyilun/Desktop/CAMEOS/platform/scripts/config.guess; find /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0/ -name config.sub | xargs -r chmod u+w; find /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0/ -name config.sub | xargs -r -n1 cp --remove-destination /home/wuyilun/Desktop/CAMEOS/platform/scripts/config.sub; AR="arm-sigmastar-linux-uclibcgnueabihf-ar" AS="ccache_cc -c -O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation -DTPSOCKET_USE_MBEDTLS=1 -lmbedtls -lmbedx509 -lmbedcrypto -DHTTP_HMAC_HKDF_SUPPORT" LD=arm-sigmastar-linux-uclibcgnueabihf-ld NM="arm-sigmastar-linux-uclibcgnueabihf-nm" CC="ccache_cc" GCC="ccache_cc" CXX="ccache_cxx" RANLIB="arm-sigmastar-linux-uclibcgnueabihf-ranlib" STRIP=arm-sigmastar-linux-uclibcgnueabihf-strip OBJCOPY=arm-sigmastar-linux-uclibcgnueabihf-objcopy OBJDUMP=arm-sigmastar-linux-uclibcgnueabihf-objdump SIZE=arm-sigmastar-linux-uclibcgnueabihf-size CFLAGS="-O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation -DTPSOCKET_USE_MBEDTLS=1 -lmbedtls -lmbedx509 -lmbedcrypto -DHTTP_HMAC_HKDF_SUPPORT " CXXFLAGS="-O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation -DTPSOCKET_USE_MBEDTLS=1 -lmbedtls -lmbedx509 -lmbedcrypto -DHTTP_HMAC_HKDF_SUPPORT " CPPFLAGS="-I/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include -I/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/include -I/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/include -I/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/include " LDFLAGS=" -L/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/lib -L/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/lib -Wl,-rpath-link,/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/lib -L/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/lib -L/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/lib -L/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/lib " ./configure --target=arm-sigmastar-linux-uclibcgnueabihf --host=arm-sigmastar-linux-uclibcgnueabihf --build=x86_64-linux-gnu --program-prefix="" --program-suffix="" --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info ; fi; ) rm -f /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0/.configured_* touch /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0/.configured_yyyyyyy CFLAGS="-O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation -DTPSOCKET_USE_MBEDTLS=1 -lmbedtls -lmbedx509 -lmbedcrypto -DHTTP_HMAC_HKDF_SUPPORT -I/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include -I/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/include -I/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/include -I/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/include " CXXFLAGS="-O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation -DTPSOCKET_USE_MBEDTLS=1 -lmbedtls -lmbedx509 -lmbedcrypto -DHTTP_HMAC_HKDF_SUPPORT -I/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include -I/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/include -I/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/include -I/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/include " LDFLAGS=" -L/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/lib -L/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/lib -Wl,-rpath-link,/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/lib -L/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/lib -L/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/lib -L/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/lib " make -j1 -C /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0/. AR="arm-sigmastar-linux-uclibcgnueabihf-ar" AS="ccache_cc -c -O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation -DTPSOCKET_USE_MBEDTLS=1 -lmbedtls -lmbedx509 -lmbedcrypto -DHTTP_HMAC_HKDF_SUPPORT" LD=arm-sigmastar-linux-uclibcgnueabihf-ld NM="arm-sigmastar-linux-uclibcgnueabihf-nm" CC="ccache_cc" GCC="ccache_cc" CXX="ccache_cxx" RANLIB="arm-sigmastar-linux-uclibcgnueabihf-ranlib" STRIP=arm-sigmastar-linux-uclibcgnueabihf-strip OBJCOPY=arm-sigmastar-linux-uclibcgnueabihf-objcopy OBJDUMP=arm-sigmastar-linux-uclibcgnueabihf-objdump SIZE=arm-sigmastar-linux-uclibcgnueabihf-size CROSS="arm-sigmastar-linux-uclibcgnueabihf-" ARCH="arm" ; make[5]: Entering directory '/home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0' ccache_cc -c -O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation -DTPSOCKET_USE_MBEDTLS=1 -lmbedtls -lmbedx509 -lmbedcrypto -DHTTP_HMAC_HKDF_SUPPORT -I/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include -I/home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/include -I/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/include -I/home/wuyilun/Desktop/CAMEOS/platform/../toolchain/ssd920_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/include -fPIC -lubox -lz -lpthread -lrt -O3 -g -o testsocket.o testsocket.c In file included from testsocket.c:26: tpsocket_ssl.h:73:11: fatal error: mbedtls/private_access.h: No such file or directory 73 | #include <mbedtls/private_access.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[5]: *** [Makefile:19: testsocket.o] Error 1 make[5]: Leaving directory '/home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0' make[4]: *** [Makefile:93: /home/wuyilun/Desktop/CAMEOS/platform/build_dir/target-arm-sigmastar-linux-uclibcgnueabihf/libtpsocket-1.0/.built] Error 2 make[4]: Leaving directory '/home/wuyilun/Desktop/CAMEOS/platform/iplatform/private/libtpsocket' make[3]: *** [package/Makefile:228: package/feeds/iplatform/libtpsocket/compile] Error 2 make[3]: Leaving directory '/home/wuyilun/Desktop/CAMEOS/platform' make[2]: *** [package/Makefile:224: /home/wuyilun/Desktop/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/stamp/.package_compile] Error 2 make[2]: Leaving directory '/home/wuyilun/Desktop/CAMEOS/platform' make[1]: *** [/home/wuyilun/Desktop/CAMEOS/platform/include/toplevel.mk:184: world] Error 2 make[1]: Leaving directory '/home/wuyilun/Desktop/CAMEOS/platform' make: *** [Makefile:104: iplatform_world] Error 2
最新发布
09-16
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值