V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
redhatping
V2EX  ›  Linux

大家好,mv 命令 成了 unix 可执行文件。

  •  
  •   redhatping · 2015-05-18 20:39:04 +08:00 · 3929 次点击
    这是一个创建于 3477 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家好, 我本来mv ab.html about ,
    输错了 ,mv ab.hml abou
    系统自己生成了一个abou,显示时unix可执行文件,怎么办? 这是什么?
    第 1 条附言  ·  2015-05-19 00:04:19 +08:00
    还是打错字了,mv ab.html abou

    (about 是一个文件夹, 我打错了成了abou,结果 ab.html 改成 abou, 而系统显示这是unix执行文件)
    16 条回复    2015-05-19 10:28:23 +08:00
    bombless
        1
    bombless  
       2015-05-18 20:45:56 +08:00 via iPhone
    你这个在win称为是重命名…
    也许你想要的是rm…
    ryd994
        2
    ryd994  
       2015-05-18 21:03:21 +08:00 via Android
    没遇到过
    mv在移动前会先stat,所以不存在的文件应该会直接报错
    大小为0就直接删
    zhchbin
        3
    zhchbin  
       2015-05-18 21:52:19 +08:00
    这个是键盘的t键失灵了吧。
    jsfaint
        4
    jsfaint  
       2015-05-18 21:53:33 +08:00
    mv ab.hml abou
    难道不是把ab.hml重命名为abou了么?

    和mv命令有什么关系?
    ikey
        5
    ikey  
       2015-05-18 22:03:38 +08:00 via Android
    再改回去不行?
    extreme
        6
    extreme  
       2015-05-18 23:14:53 +08:00
    mv是移动文件的命令,也能用来改名。
    目测显示可执行文件是某个资源管理器的功能。
    文件无扩展名,且当前用户对此文件有执行权限(ls -l里面看到有x权限,也就是1),就自动当成可执行文件。
    那只是根据文件表面的信息(文件名,权限)判断,这些表面的信息并不代表更不影响文件本身所属的类型,想知道文件是什么类型的文件,可以用file命令:
    file 文件名

    到这里,你应该知道那两个文件其实是用一个文件,只是名字不同。
    ujmxyd
        7
    ujmxyd  
       2015-05-18 23:29:27 +08:00 via iPad
    chmod -x abou
    mv abou about
    redhatping
        8
    redhatping  
    OP
       2015-05-18 23:52:33 +08:00
    @extreme
    我是苹果mac, 发现了有趣的问题,
    mv 1.txt dca (dca是一个不存在的东西)
    系统多了dca, 可以用文本编辑器打开。 应该是1.txt改名了dca.

    mv 1.html dca

    同样也是改名。但是因为Xcode 可以出来, 上一次是撒原因导致系统显示是unix 可执行文件确实很奇怪。
    webjin
        9
    webjin  
       2015-05-18 23:59:18 +08:00 via Android
    @jsfaint 他的意思是存在a.html但是少打了t字 打成a.hml
    extreme
        10
    extreme  
       2015-05-19 00:02:11 +08:00   ❤️ 1
    @redhatping 不是说了是权限问题吗?
    redhatping
        11
    redhatping  
    OP
       2015-05-19 00:05:07 +08:00
    @extreme 感谢哈
    ryd994
        12
    ryd994  
       2015-05-19 00:45:51 +08:00 via Android
    那么问题来了:
    为什么你的HTML是777!作大死莫过于此
    neoblackcap
        13
    neoblackcap  
       2015-05-19 00:52:29 +08:00
    首先世界上本没有rename,后来人们觉得mv还能重命名实在太扯了于是就开发了个rename,但是mv依然有重命名的能力。
    其二你unix不看扩展名,有执行权限的文件就当可执行的文件来处理。
    fuge
        14
    fuge  
       2015-05-19 06:56:10 +08:00 via iPhone
    想半天没想明白什么是可执行文件
    Tiande
        15
    Tiande  
       2015-05-19 08:51:01 +08:00
    ```
    ls -l | grep abou
    chmod 766 abou
    ```
    把 x 权限去掉就行了。
    likuku
        16
    likuku  
       2015-05-19 10:28:23 +08:00
    linux/unix 判断文件类型不看后缀名的,看文件头的,后缀名只是给人类看的,方便人类识别。

    dos 貌似是和人类一样蠢,得靠后缀名识别。

    file 这个指令可以探测文件头,给出它判断的文件类型结果:

    $ whereis file
    file: /usr/bin/file /usr/share/file /usr/share/man/man1/file.1.gz
    [10:28:08] kuku.li  x230-kuku  ~  $ 

    $ file /usr/bin/file
    /usr/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=2163ec3deab31f54efe093e9f253f9e486d98667, stripped
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1250 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:06 · PVG 02:06 · LAX 10:06 · JFK 13:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.