嵌入式linux /dev 下的文件无法复制

关注:234  答案:4  mip版

解决时间 2021-02-06 06:27

提问者一段小時光

2021-02-06 00:38

root下也有文件不能编辑,用ftp root用户进入后也不能复制文件。是哪里的权限问题,设定问题?

最佳答案

二级知识专家你的幸福"关我啥事

2021-02-06 01:50

linux /dev 下面是设备文件,不能直接使用cp复制,而是使用 dd 命令复制的。

Linux-dd命令详解

dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

名称: dd

使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file

使用方式:

dd [option]

如果你想要在线看 manual, 可以试试:

dd --help

或是

info dd

如果你想要看看这个版本如何:

dd --version

输入或输出

dd if=[STDIN] of=[STDOUT]

强迫输入或输出的Size为多少Bytes

bs: dd -ibs=[BYTE] -obs=[SIZE]

强迫一次只做多少个 Bytes

cbs=BYTES

跳过一段以后才输出

seek=BLOCKS

跳过一段以后才输入

skip=BLOCKS

当然你可以拿这个来方便的拷贝光碟(注意,你的光碟是标准的 iso9660格式才可以这么做唷!)

dd if=/dev/cdrom of=cdrom.iso

其中 if 后面以及 of 后面的内容依你的需求调整。

然后给系统这个指令就可以烧了:

cdrecord -v cdrom.iso

这篇不是在讲 cdrecord 的,所以上面的指令是最为简单但是不一定能符合您的硬件环境...

功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。

语法:dd [选项]

if =输入文件(或设备名称)。

of =输出文件(或设备名称)。

ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。

skip = blocks 跳过读入缓冲区开头的ibs*blocks块。

obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。

bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。

cbs = byte 一次转换bytes字节。

count=blocks 只拷贝输入的blocks块。

conv = ASCII 把EBCDIC码转换为ASCIl码。

conv = ebcdic 把ASCIl码转换为EBCDIC码。

conv = ibm 把ASCIl码转换为alternate EBCDIC码。

conv = block 把变动位转换成固定字符。

conv = ublock 把固定位转换成变动位。

conv = ucase 把字母由小写转换为大写。

conv = lcase 把字母由大写转换为小写。

conv = notrunc 不截短输出文件。

conv = swab 交换每一对输入字节。

conv = noerror 出错时不停止处理。

conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。

例1:要把一张软盘的内容拷贝到另一张软盘上,利用/tmp作为临时存储区。把源盘插入驱动器中,输入下述命令:

$ dd if =/dev/fd0 of = /tmp/tmpfile

拷贝完成后,将源盘从驱动器中取出,把目标盘插入,输入命令:

$ dd if = /tmp/tmpfile of =/dev/fd0

软盘拷贝完成后,应该将临时文件删除:

$ rm /tmp/tmpfile

例2:把net.i这个文件写入软盘中,并设定读/写缓冲区的数目。

(注意:软盘中的内容会被完全覆盖掉)

$ dd if = net.i of = /dev/fd0 bs = 16384

例3:将文件sfile拷贝到文件 dfile中。

$ dd if=sfile of=dfile

例4:创建一个100M的空文件

dd if=/dev/zero of=hello.txt bs=100M count=1

=============================================

/dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!

/dev/zero,是一个输入设备,你可你用它来初始化文件。

/dev/null------它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。

/dev/zero------该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。

$ dd if=/dev/zero of=./test.txt bs=1k count=1

$ ls -l

total 4

-rw-r--r-- 1 oracle dba 1024 Jul 15 16:56 test.txt

eg:

$ find / -name access_log 2>/dev/null

全部回答

1楼空虚的心

2021-02-06 04:37

先看下权限是否有“锁位" 再看看你的空间是否已经写满了···

2楼何必执着

2021-02-06 03:18

dev文件夹下面都类特殊文件:设备文件大部分字符设备文件对于切皆文件linux来说些特殊文件能被复制其实些文件由驱动程序device_create()函数构建或者用户通过mknod命令来手动创建用户应用程序通过open read write函数来读写些文件来输入或者输出数据设备文件能够复制其地方会导致整VFS虚拟文件系统混乱内核能过凭借inode节点来正常读取设备数据所系统允许做即使root用户

dev目录下的文件又叫设备结点,只是起一个连接作用,把你对设备的操作映射到具体的驱动程序代码中去。真正访问硬件的工作都是驱动代码做的。建议阅读《Linux设备驱动程序》一书。

3楼注定要离开

2021-02-06 03:02

dev文件夹下面的都是一类特殊的文件:设备文件,大部分为字符设备文件。对于“一切皆文件”的linux来说,这些特殊文件是不能被复制。其实这些文件是由驱动程序的device_create()函数构建或者用户通过mknod命令来手动创建,用户的应用程序通过open read write函数来读写这些文件来输入或者输出数据,如果设备文件能够复制到其他地方,将会导致整个VFS虚拟文件系统混乱,内核不能过凭借inode节点来正常读取设备数据,所以系统是不允许你这么做的,即使是root用户。

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

大家都在看

嵌入式linux防复制,嵌入式linux /dev 下的文件无法复制相关推荐

  1. Linux和Windows的遍历目录下所有文件的方法对比

    首先两者读取所有文件的方法都是采用迭代的方式,首先用函数A的返回值判断目录下是否有文件,然后返回值合法则在循环中用函数B直到函数B的返回值不合法为止.最后用函数C释放资源. 1.打开目录 #inclu ...

  2. linux spool目录 删除,Linux知识:/var/spool/clientmqueue 下垃圾文件删除

    Linux操作系统中的/var/spool/clientmqueue/目录下存在大量文件. 原因分析:系统中有用户开启了 cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的 ...

  3. linux c之用fwrite和fread实现文件的复制

    1.题目 用fwrite和fread函数实现文件的复制 2.函数解释 #include<stdio.h> size_t fread(void *ptr, size_t size, size ...

  4. [Linux] Linux 客户端NFS挂载后目录下中文名文件乱码

    0x0 场景 服务端:Windows 2008R2 NFS共享目录D:/TEST 客户端:Linux/Centos 7.5 Centos 7.5 客户端NFS挂载 Windows2008R2 共享目录 ...

  5. linux fwrite 头文件,linux c之用fwrite和fread实现文件的复制

    1.题目 用fwrite和fread函数实现文件的复制 2.函数解释 #include size_t fread(void *ptr, size_t size, size_t nmemb, FILE ...

  6. linux 防arp 带宽,linux下防止arp攻击

    注意是在debian下 安装arptables apt-get install arptables arptables -A INPUT -i ech0 --src-mac ! 00:0f:e2:b2 ...

  7. linux shell命令 复制,将bash提示符下的当前命令复制到剪贴板

    今天我花了很多时间像样的数目写一个简单的的zsh实施MacOS的;用法如下: example command: git commit -m "Changed a few things&quo ...

  8. linux 防arp 带宽,linux下防arp

    方法一: 首先安装arptables: sudo apt-get install arptables 然后定义规则: sudo arptables -A INPUT --src-mac ! 网关物理地 ...

  9. 同一个文件夹下的文件进行复制操作,并且重命名的Linux命令

    例如: cp FILE_TEST_JAR10u10s.jmx jarFile30u600s.jmx

最新文章

  1. 读取 android的内存、cpu、流量等 信息
  2. PXE全自动安装操作系统--centos7.3学习笔记
  3. LeetCode Count and Say
  4. VS.NET C#视频教学
  5. restTemplate 传递map
  6. [20180808]exists and not exists.txt
  7. 【SPFA】Party(jzoj 1328)
  8. 【CodeForces - 546C 】Soldier and Cards (模拟)
  9. 带你全面掌握高级知识点!深入理解java虚拟机pdf下载
  10. 你们要的Windows IDEA 快捷键终极大全,速度收藏!
  11. 绘图添加网格_Stata绘图: 添加虚线网格线
  12. 《Oracle Exadata云服务官方指南》之 Oracle Database Exadata 云服务
  13. Android人脸识别的初步学习
  14. c#_工大租车小系统
  15. 如何完美卸载Mysql
  16. gprs java_GPRS类型一览
  17. Good Luck in CET-4 Everybody! HDU - 1847
  18. PayPal取消了连连支付快捷提现,我是如何提现到国内的?
  19. 解决微信小程序RangeError: WebAssembly.instantiate(): Out of memory: wasm memory内存不足问题
  20. Data Structures in C++:八大基本数据结构概述

热门文章

  1. Java之数组的定义
  2. 什么蓝牙耳机适合IPHONE呢?四款音质不错的蓝牙耳机推荐
  3. 【棵岩阅读】专为科研打造的阅读和知识发现工具
  4. 马克扎克伯格谈未来科技趋势:视频、人工智能、VR
  5. [附源码]计算机毕业设计JAVAjsp零食销售系统
  6. 【硬件】搭建自己的深度学习服务器 or 高性能电脑——从0到1装机指南
  7. 计算机硬件外围设备介绍,计算机硬件及其外围设备.ppt
  8. zoom会议启用等候室会怎样,安排zoom会议一直通讯中
  9. pg linux 的启动命令,PostgreSQL数据库在Linux下的安装与启动与使用
  10. web前端交流群小程序交流群uni-app交流群vue交流群react交流群