linux怎么移动文件到目录?linux转移文件位置的方法

前言显然这个脚本的作用,是将指定的文件提取到当前目录中,并保持它原本的目录结构比如,我想把系统中lftp的所有文件按原本的目录结构复制出来。。你可能会疑问,为什么不直接从deb包中提取,比如这样:apt download lftp #从仓库

前言

显然这个脚本的作用,是将指定的文件提取到当前目录中,并保持它原本的目录结构

比如,我想把系统中lftp的所有文件按原本的目录结构复制出来。。

linux怎么移动文件到目录?linux转移文件位置的方法你可能会疑问,为什么不直接从deb包中提取,比如这样:

aptdownloadlftp #从仓库中下载lftpdeb包,假设这里下载好的文件名是lftp.debdpkg-Xlftp.deblftp #将lftp.deb文件解压

这确实是个好方法!

可如果只有文件列表,deb包下不到呢?

又或者,系统中的某些文件是被修改过的,和仓库下载解包的不同呢?

当然,可能还有其它情况。。

做这个脚本,正是因为我在研究某个软件时,有它的文件列表却下不到它的包。。

这里以lftp的文件列表做演示。

创建两个文件,如图:

文件列表.txt 中的内容如下:

/usr/share/doc/lftp/README.debug-levels/usr/share/doc/lftp/README.gz/usr/share/doc/lftp/README.modules/usr/share/doc/lftp/changelog.Debian.gz/usr/share/doc/lftp/changelog.gz/usr/share/icons/hicolor/48x48/apps/lftp-icon.png/usr/share/man/man1/lftp.1.gz/etc/lftp.conf/usr/share/man/man5/lftp.conf.5.gz/usr/share/applications/lftp.desktop/usr/share/locale/zh_CN/LC_MESSAGES/lftp.mo/usr/share/locale/es/LC_MESSAGES/lftp.mo/usr/share/locale/zh_HK/LC_MESSAGES/lftp.mo/usr/share/locale/zh_TW/LC_MESSAGES/lftp.mo/usr/share/locale/it/LC_MESSAGES/lftp.mo/usr/share/locale/cs/LC_MESSAGES/lftp.mo/usr/share/locale/ja/LC_MESSAGES/lftp.mo/usr/share/locale/ru/LC_MESSAGES/lftp.mo/usr/share/locale/de/LC_MESSAGES/lftp.mo/usr/share/locale/pt_BR/LC_MESSAGES/lftp.mo/usr/share/locale/fr/LC_MESSAGES/lftp.mo/usr/share/locale/ko/LC_MESSAGES/lftp.mo/usr/share/locale/pl/LC_MESSAGES/lftp.mo/usr/share/locale/uk/LC_MESSAGES/lftp.mo/usr/share/man/man1/lftpget.1.gz

提取文件.sh 的脚本内容:

#!/bin/bashfile="文件列表.txt"if [ ! -e $file ];thenecho$file'不存在,脚本无法继续!'exitfiecho'请输入登陆密码:'read passwdecho$passwd |sudo -S echoif [ $? != 0 ];thenecho"执行失败,可能是密码错误!"exitfi#从列表文件中提取所有路径,并在当前文件夹下创建cat $file |awk -F/ '{for ( i=1;i<NF;i++ ){ #NF表示字段数 if (i == 1){ sky = "." $i; #靠前次循环加上 . }else{ sky = sky "/" $i; } } print sky; #输出路径 sky=""; #初始化路径,准备下一次循环}'|xargs mkdir -p #将列表中的文件,拷贝到当前文件夹下的对应目录中cat $file |awk '{ system("sudo cp "$1" ."$1" ")}'

因为是自用的脚本,里面的变量命名很随意,比如sky。。懒得改了,请自行修改。。

执行脚本

在文件夹空白处点击右键,选择“在终端中打开”:

在弹出的终端窗口中输入:

bash 提取文件.sh

回车后,输入当前系统登陆的用户密码,正确的话所有的文件就拷贝过来了:

以上就是小编给大家带来的关于'linux怎么移动文件到目录?linux转移文件位置的方法'的探讨分享,希望大家通过阅读小编的文章之后能够有所收获!如果大家觉得小编的文章不错的话,可以多多分享给有需要的人。

版权:本文由用户自行上传,观点仅代表作者本人,本站仅供存储服务。如有侵权,请联系管理员,了解详情>>

发布
问题