前几天写操作系统的作业,要熟悉Ubuntu下的基本操作命令,当写到复制txt文件时,搜索后尝试了许久,以各种各样的方式出错,所以今天记录一下,以防以后再错。

如下是终端显示的cp使用方法(看的不是很懂):

用法:cp [选项]... [-T] 源文件 目标文件
 或:cp [选项]... 源文件... 目录
 或:cp [选项]... -t 目录 源文件...
将指定<源文件>复制至<目标文件>,或将多个<源文件>复制至<目标目录>。

必选参数对长短选项同时适用。
  -a, --archive            等于-dR --preserve=all
      --attributes-only    仅复制属性而不复制数据      --backup[=CONTROL        为每个已存在的目标文件创建备份
  -b                类似--backup 但不接受参数
      --copy-contents        在递归处理是复制特殊文件内容
  -d                等于--no-dereference --preserve=links
  -f, --force                  如果有已存在的目标文件且无法打开,则将其删除并重试
                                 (该选项在与 -n 选项同时使用时将被忽略)
  -i, --interactive            覆盖前询问(使前面的 -n 选项失效)
  -H                           跟随源文件中的命令行符号链接
  -l, --link                   硬链接文件以代替复制
  -L, --dereference            总是跟随源文件中的符号链接
  -n, --no-clobber        不要覆盖已存在的文件(使前面的 -i 选项失效)
  -P, --no-dereference        不跟随源文件中的符号链接
  -p                等于--preserve=模式,所有权,时间戳
      --preserve[=属性列表    保持指定的属性(默认:模式,所有权,时间戳),如果
                    可能保持附加属性:上下文、链接、xattr 等
      --sno-preserve=属性列表    不保留指定的文件属性
      --parents            复制前在目标目录创建来源文件路径中的所有目录
  -R, -r, --recursive        递归复制目录及其子目录内的所有内容
      --reflink[=WHEN]        控制克隆/CoW 副本。请查看下面的内如。
      --remove-destination    尝试打开目标文件前先删除已存在的目的地
                    文件 (相对于 --force 选项)
      --sparse=WHEN        控制创建稀疏文件的方式
      --strip-trailing-slashes    删除参数中所有源文件/目录末端的斜杠
  -s, --symbolic-link        只创建符号链接而不复制文件
  -S, --suffix=后缀        自行指定备份文件的后缀
  -t,  --target-directory=目录    将所有参数指定的源文件/目录
                                           复制至目标目录
  -T, --no-target-directory    将目标目录视作普通文件
  -u, --update            只在源文件比目标文件新,或目标文件
                    不存在时才进行复制
  -v, --verbose        显示详细的进行步骤
  -x, --one-file-system    不跨越文件系统进行操作
  -Z                           设置目标文件的 SELinux 安全上下文为默认类型
      --context[=上下文]       类似 -Z;如果指定了上下文,则将 SELinux 或
                                 SMACK 安全上下文设置为指定值
      --help        显示此帮助信息并退出
      --version        显示版本信息并退出

默认情况下,源文件的稀疏性仅仅通过简单的方法判断,对应的目标文件目标文件
也将设为稀疏。这是因为默认情况下使用了--sparse=auto 参数。如果明确使用
--sparse=always 参数,则不论源文件是否包含足够长的 0 序列,都会将目标文件
创建为稀疏文件。使用 --sparse=never 参数可以禁止创建稀疏文件。

当指定了 --reflink[=always] 参数时,将进行轻量级复制,此时数据块只在被修改时
进行复制,如果无法如此操作则复制将会失败。或者如果指定了 --reflink=auto,程序
将会回退到标准复制操作。使用 --reflink=never 可以确保永远进行标准复制。

备份文件的后缀为"~",除非以--suffix 选项或是 SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可通过--backup 选项或 VERSION_CONTROL 环境
变量来选择。以下是可用的变量值:

  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份

有一个特别情况:如果同时指定--force 和--backup 选项,而源文件和目标文件
是同一个已存在的一般文件的话,cp 会将源文件备份。

GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 cp 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/cp>
或者在本地使用:info '(coreutils) cp invocation'

接下来举例说明。

 首先在course目录下的code目录新建一个test.txt文件。

1.在code目录下复制文本文件test.txt并重命名为test.txt

cp test.txt test1.txt

2.复制文本文件test.txt至course(使用绝对路径)

(1)首先使用pwd命令查询当前路径

pwd

(2)然后输入如下代码(xxx根据自己的目录名修改,而且可能有多个)

cp test.txt /xxx/xxx/course

3.复制文本文件test.txt至course并重命名为test2.txt(使用绝对路径)

与第2条类似

cp test.txt /xxx/xxx/course/test2.txt

4.复制文本文件test.txt至course并重命名为test3.txt(使用相对路径)

cp test.txt ../test3.txt

5.复制文本文件test.txt至course的上级目录并重命名为test4.txt(使用相对路径)

cp test.txt ../../test4.txt

此为最后显示的目录结构:

 

 

最后的最后放一下其他的基本操作命令:

步骤

操作

命令

1

登陆Ubuntu操作系统

2

在自己的某个目录(简称目录A)下新建一个子目录,并命名(假如我命令为B)

cd course

mkdir code

cd code

3

回到目录A

cd ..

4

进入自己刚建的子目录B

cd code

5

在该子目录B下创建一个test.txt的文件

touch test.txt

6

打开该test.txt文件,并输入"Hello, operation system students!",然后关闭该文件。

gedit test.txt

7

拷贝test.txt文件并重命名为temp.txt

cp ./test.txt ./temp.txt

8

删除temp.txt文件

rm ./temp.txt

9

查看自己当前所在路径

pwd

10

清除屏幕所有显示

clear

11

查看当前目录所有文件的list

ls

12

用uname相关命令显示你的操作系统的所有信息

13

重命名test.txt文件为test1.txt

mv test.txt test1.txt

14

将test1.txt复制到目录A下并重命名为test2.txt

cp test1.txt ../test2.txt

15

使用帮助查看关于命令dir的说明

man dir

16

删除自己刚创建的目录A

cd ..

cd ..

rm -rf course

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐