iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >不用mv命令的情况下怎么移动文件
  • 154
分享到

不用mv命令的情况下怎么移动文件

2023-06-05 18:06:54 154人浏览 八月长安
摘要

这篇文章主要介绍“不用mv命令的情况下怎么移动文件”,在日常操作中,相信很多人在不用mv命令的情况下怎么移动文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”不用mv命令的情况下怎么移动文件”的疑惑有所帮助!

这篇文章主要介绍“不用mv命令的情况下怎么移动文件”,在日常操作中,相信很多人在不用mv命令的情况下怎么移动文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”不用mv命令的情况下怎么移动文件”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在远离 mv 之前,先看看这个命令的默认结果。首先,创建一个目录并生成一些权限为 777 的文件:不起眼的 mv 命令是在你见过的每个 POSIX 系统中都能找到的有用工具之一。它的作用是明确定义的,并且做得很好:将文件从文件系统中的一个位置移动到另一个位置。但是 linux 非常灵活,还有其他移动文件的办法。使用不同的工具可以完美匹配一些特殊用例,这算一个小优势。

$ mkdir example$ touch example/{foo,bar,baz}$ for i in example/*; do ls /bin > "${i}"; done$ chmod 777 example/*

你可能不会这么认为,但是文件在一个文件系统中作为条目存在,称为索引节点(通常称为 inode),你可以使用 ls 命令及其 --inode 选项查看一个文件占用的 inode:

$ ls --inode example/foo7476868 example/foo

作为测试,将文件从示例目录移动到当前目录,然后查看文件的属性:

$ mv example/foo .$ ls -l -G -g --inode7476868 -rwxrwxrwx. 1 29545 Aug  2 07:28 foo

如你所见,原始文件及权限已经被“移动”,但它的 inode 没有变化。

这就是 mv 工具用来移动的方式:保持 inode 不变(除非文件被移动到不同的文件系统),并保留其所有权和权限。

其他工具提供了不同的选项。

复制和删除

在某些系统上,移动操作是真的在做移动:比特从文件系统中的某个位置删除并重新分配给另一个位置。这种行为在很大程度上已经失宠。现在,移动操作要么是属性重新分配(inode 现在指向文件组织中的不同位置),要么是复制和删除操作的组合。这种设计的哲学意图是确保在移动失败时,文件不会碎片化。

与 mv 不同,cp 命令会在文件系统中创建一个全新的数据对象,它有一个新的 inode 位置,并取决于 umask。你可以使用 cp 和 rm(如果有的话,或者 trash —— LCTT 译注:它是一个命令行回收站工具)命令来模仿 mv 命令。

$ cp example/foo .$ ls -l -G -g --inode7476869 -rwxrwxr-x. 29545 Aug  2 11:58 foo$ trash example/foo

示例中的新 foo 文件获得了 755 权限,因为此处的 umask 明确排除了写入权限。

$ umask0002

有关 umask 的更多信息,阅读 Alex Juarez 这篇关于文件权限的文章。

查看和删除

与复制和删除类似,使用 cat(或 tac)命令在创建“移动”文件时分配不同的权限。假设当前目录中是一个没有 foo 的新测试环境:

$ cat example/foo > foo$ ls -l -G -g --inode7476869 -rw-rw-r--. 29545 Aug 8 12:21 foo$ trash example/foo

这次,创建了一个没有事先设置权限的新文件,所以文件最终权限完全取决于 umask 设置,它不会阻止用户和组的权限位(无论 umask 是什么,都不会为新文件授予可执行权限),但它会阻止其他人的写入(值为 2)。所以结果是一个权限是 664 的文件。

Rsync

rsync 命令是一个强大的多功能工具,用于在主机和文件系统位置之间发送文件。此命令有许多可用选项,包括使其目标镜像成为源。

你可以使用带有 --remove-source-files 选项的 rsync 复制,然后删除文件,并可以带上你选择执行同步的任何其他选项(常见的通用选项是 --arcHive):

$ rsync --archive --remove-source-files example/foo .$ ls examplebar  baz$ ls -lGgi7476870 -rwxrwxrwx. 1 seth users 29545 Aug 8 12:23 foo

在这里,你可以看到保留了文件权限和所有权,只是更新了时间戳,并删除了源文件。

警告:不要将此选项与 --delete 混淆,后者会从目标目录中删除(源目录中不存在的)文件。误用 --delete 会清除很多数据,建议你不要使用此选项,除非是在测试环境中。

你可以覆盖其中一些默认值,更改权限和修改设置:

$ rsync --chmod=666 --times \    --remove-source-files example/foo .$ ls examplebar  baz$ ls -lGgi7476871 -rw-rw-r--. 1 seth users 29545 Aug 8 12:55 foo

这里,目标的 umask 会生效,因此 --chmod=666 选项会产生一个权限为 644 的文件。

好处不仅仅是权限,与简单的 mv 命令相比,rsync 命令有很多有用的选项(其中最重要的是 --exclude 选项,这样你可以在一个大型移动操作中排除某些项目),这使它成为一个更强大的工具。例如,要在移动文件集合时排除所有备份文件:

$ rsync --chmod=666 --times \    --exclude '*~' \    --remove-source-files example/foo .

使用 install 设置权限

install 命令是一个专门面向开发人员的复制命令,主要是作为软件编译安装例程的一部分调用。它并不为用户所知(我经常想知道为什么它有这么一个直观的名字,而剩下的包管理器却只能使用缩写和昵称),但是 install 实际上是一种将文件放在你想要地方的有用方法。

install 命令有很多选项,包括 --backup 和 --compare 命令(以避免更新文件的新副本)。

与 cp 和 cat 命令不同,但与 mv 完全相同,install 命令可以在复制文件的同时而保留其时间戳:

$ install --preserve-timestamp example/foo .$ ls -l -G -g --inode7476869 -rwxr-xr-x. 1 29545 Aug  2 07:28 foo$ trash example/foo

在这里,文件被复制到一个新的 inode,但它的 mtime(修改时间)没有改变。但权限被设置为 install 的默认值 755。

你可以使用 install 来设置文件的权限,所有者和组:

$ install --preserve-timestamp \    --owner=skenlon \    --group=dialout \    --mode=666 example/foo .$ ls -li7476869 -rw-rw-rw-. 1 skenlon dialout 29545 Aug  2 07:28 foo$ trash example/foo

移动、复制和删除

文件包含数据,而真正重要的文件包含你的数据。学会聪明地管理它们是很重要的,现在你有了确保以你想要的方式来处理数据的工具包。

到此,关于“不用mv命令的情况下怎么移动文件”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 不用mv命令的情况下怎么移动文件

本文链接: https://www.lsjlt.com/news/244045.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 不用mv命令的情况下怎么移动文件
    这篇文章主要介绍“不用mv命令的情况下怎么移动文件”,在日常操作中,相信很多人在不用mv命令的情况下怎么移动文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”不用mv命令的情况下怎么移动文件”的疑惑有所帮助!...
    99+
    2023-06-05
  • Linux下如何使用mv命令移动文件位置
    这篇文章给大家分享的是有关Linux下如何使用mv命令移动文件位置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux中要想移动文件位置可以使用mv命令,mv命令有两种用途。mv命令的功能有以下两种:&nbs...
    99+
    2023-06-27
  • mv命令——移动或重命名文件
    mv命令是英文单词move的缩写,作用是移动文件,或者重命名文件. 这里需要先搞清楚mv操作中移动和重命名的概念: 移动文件:就是将文件从一个目录移动到另一个目录,相当于Windows中的剪切操作重命名文件:在同一个目录中移动文件就可以理解...
    99+
    2023-10-04
    linux 运维 服务器 bash euler
  • linux如何使用mv命令移动文件
    linux使用mv命令移动文件的方法:1、在linux系统桌面中使用快捷键【Ctrl+Alt+T】打开linux终端命令行模式;2、在linux终端命令行中输入“mv 【选项】 源文件 目标文件”命令格式进行移动文件即可。具体内容如下:mv...
    99+
    2024-04-02
  • Linux mv命令如何移动或重命名文件/目录
    这篇文章跟大家分析一下“Linux mv命令如何移动或重命名文件/目录”。内容详细易懂,对“Linux mv命令如何移动或重命名文件/目录”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入...
    99+
    2023-06-28
  • Linux系统中如何使用mv命令移动文件和目录
    本篇文章给大家分享的是有关Linux系统中如何使用mv命令移动文件和目录,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。mv(move)命令,适用于移动文件或者目录,还可以对文件...
    99+
    2023-06-28
  • 【Linux命令】mount / umount命令、查看文件的挂载情况(lsblk)
    在Windows环境下,我们可以直接访问检测到的外部设备,如磁盘、U盘等;然而在Linux环境下,外部硬件设备如磁盘、SD卡等外部设备是无法直接访问的。因此就需要挂载。 参考链接:mount 详解 目录 1、什么是挂载? 2、为什么需...
    99+
    2023-09-01
    linux 运维 服务器
  • linux移动文件的命令是什么
    在Linux中,移动文件的命令是`mv`。它可以用来将文件或目录从一个位置移动到另一个位置。其基本语法如下:```mv [选项] 源...
    99+
    2023-09-15
    linux
  • Linux的mv命令怎么使用
    这篇“Linux的mv命令怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux的mv命令怎么使用”文章吧。Lin...
    99+
    2023-06-28
  • Linux中的mv命令怎么用
    这篇文章给大家分享的是有关Linux中的mv命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux常用命令mv命令 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。mv用来对文件或目录...
    99+
    2023-06-28
  • Linux下怎么使用free命令查看内存使用情况
    本篇内容主要讲解“Linux下怎么使用free命令查看内存使用情况”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下怎么使用free命令查看内存使用情况”吧!显示系统内存不带任何选项运行...
    99+
    2023-06-27
  • ubuntu移动文件夹命令是什么
    在Ubuntu中,要移动文件夹,你可以使用`mv`命令。以下是基本的语法:```mv /path/to/source_directo...
    99+
    2023-09-15
    ubuntu
  • 在Linux中不输入密码的情况下运行sudo命令
    本篇内容主要讲解“在Linux中不输入密码的情况下运行sudo命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在Linux中不输入密码的情况下运行sudo命令”吧!假设你在只有自己使用的计算机...
    99+
    2023-06-16
  • PHP怎么处理文件不存在的情况
    这篇文章主要讲解了“PHP怎么处理文件不存在的情况”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP怎么处理文件不存在的情况”吧!当您使用PHP访问文件系统时,有几种方法可以检查文件是否存...
    99+
    2023-07-05
  • linux查看内存使用情况的命令怎么用
    这篇“linux查看内存使用情况的命令怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux查看内存使用情况的命令怎...
    99+
    2023-07-04
  • cmd中如何使用move命令移动文件
    这篇文章给大家分享的是有关cmd中如何使用move命令移动文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  move的使用非常简单,基本格式为 move A B。在这里,A表示你想要执行移动操作的文件或文件夹...
    99+
    2023-06-08
  • 怎么使用curl命令下载文件
    这篇文章主要介绍“怎么使用curl命令下载文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用curl命令下载文件”文章能帮助大家解决问题。curl是一个开源的用于数据传输的命令行工具与库,它...
    99+
    2023-06-27
  • python怎么移动文件夹下所有文件
    在Python中,可以使用`shutil`模块来移动文件夹下的所有文件。具体的步骤如下:1. 导入`shutil`模块:`impor...
    99+
    2023-08-15
    python
  • 怎么用Linux命令行下载文件
    这篇文章主要讲解了“怎么用Linux命令行下载文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Linux命令行下载文件”吧!Linux命令行比GUI提供了更多的灵活性和控制力。与GU...
    99+
    2023-06-15
  • Linux中怎么使用free命令检查内存情况
    这篇文章主要讲解了“Linux中怎么使用free命令检查内存情况”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux中怎么使用free命令检查内存情况”吧!free 命令显示系统内存的使...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作