• What are Unix swap (.swp) files?


    原文: http://www.networkworld.com/article/2931534/it-management/what-are-unix-swap-swp-files.html

    ---------------------------------------------------------------------------------------------------------------

    When someone mentions a "swap file", the first thing that comes into your mind might be the kind of file that you would create to increase the swap space on a Unix system. Think swapfile and the swapon command. But there's another kind of swap file that comes into play, generally when you're trying to edit a file that might have encountered some difficulties during a prior edit. That type of swap file is created by your system to help ensure that you don't lose important file content when something goes wrong. And it generally sits in the same directory as the original file and has .swp as its extension.

    These swap files store content for the specific file -- for example, while you're editing a file with vim. They are set up when you start an edit session and then automatically removed when you're done unless some problem occurs and your editing session doesn't complete properly. In that case, vim will offer you a chance to recover your work where you left off.

    If you were sitting in a directory containing a file that is currently being edited with vim, you might see the type of file that I'm referring to. If the file being edited were called chkAccts.sh, for example, the swap file set up when you begin your edit would be called .chkAccts.sh.swp and you could spot it sitting in the same directory were you to look for it from another window or login session.

    These swap files have two purposes: 1) to help keep you from losing content if you run into some kind of editing glitch and 2) to keep you from editing the same file at the same time from each of two sessions. If an editing session crashes or you try to edit the file a second time from a separate window, vim will warn you by issuing a fairly verbose message indicating that the swap file exists and teling you that the reason is one of the two that I just mentioned. It will also supply the command needed to start the editing session using the contents of the swap file.

    If you edit the file again, despite the warning, but fail to remove the swap file, vim will continue to warn you. It will show you something like this. In fact, it will show you this every time you edit the file -- as long as the .swp is still sitting there under your fingertips.

    E325: ATTENTION
    Found a swap file by the name ".chkAccts.sh.swp"
              owned by: root   dated: Thu May 28 09:33:16 2015
             file name: /home/shs/bin/chkAccts.sh.swp
              modified: YES
             user name: shs    host name: boson
            process ID: 11354
    While opening file "chkAccts.sh.swp"
                 dated: Thu May 28 10:41:05 2015
          NEWER than swap file!
    
    (1) Another program may be editing the same file.
        If this is the case, be careful not to end up with two
        different instances of the same file when making changes.
        Quit, or continue with caution.
    
    (2) An edit session for this file crashed.
        If this is the case, use ":recover" or "vim -r ShareAccessReview.csv"
        to recover the changes (see ":help recovery").
        If you did this already, delete the swap file ".ShareAccessReview.csv.swp"
        to avoid this message.
    "chkAccts.sh.swp" 45L, 2941C
    
    Using swap file ".chkAccts.sh.swp"
    Original file "/home/oracle/data/chkAccts.sh"
    E308: Warning: Original file may have been changed
    Recovery completed. You should check if everything is OK.
    (You might want to write out this file under another name
    and run diff with the original file to check for changes)
    Delete the .swp file afterwards.
    
    Press ENTER or type command to continue
    

    You might recognize some of the original file the contents if you try to look at a .swp file, but it's not going to look like exactly like the original file. It will contain your original text, but also some other content. It is, after all, a dump of some portion of your editing.  They shadow your editing session.

    $ cat .isanumber.swp
    3210#"! Utp▒N▒D▒ad=usvad▒▒▒▒▒▒▒xutfi  echo "$1 is a number"else  exit 1  echo "ERROR: not a number!" > /dev/stderrthenif ! [ "$1" -eq "$1" 2> /dev/null ]#!/bin/bash$
    

    If you want to abandon prior editing changes that might be recorded in the swap file, just look for a file with the same name as the one you were editing, but starting with a period and having the extension .swp added to the end and remove it. Problem resolved.

    $ rm .chkAccts.sh.swp
    rm: remove regular file `.chkAccts.sh.swp'? y
    

    If, for some reason, you want your swap files to be stored somewhere other than your current directory, you can create a .vimrc file and insert a command such as directory=/tmp to use a different directory. You can also disable the behavior (creating swap files) altogether by setting up your .vimrc file like the one shown below. Though I think the protection is generally a good thing, some Unix folks prefer to use other means to ensure their files aren't subject to loss and think that the appearance of .swp files on their systems is more trouble than it's worth. The tradeoff should probably depend on whether you waste a lot of time cleaning up .swp files that you don't need or are grateful every time one of them saves work in progress when you editing session runs into problems.

    $ cat .vimrc
    set directory=/tmp
    set nobackup
    set noswapfile
    

    Swap files don't generally cause a lot of trouble, but can be annoying if you keep having to look at vim's warnings every time you go to edit a file. A little cleanup and they'll stop generating warnings.

    Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.

    What are Unix swap (.swp) files?

  • 相关阅读:
    常见hash算法的原理
    【学习干货】给coder的10个读书建议
    htc one x刷机记录
    Linux 搭建SVN server
    javascript
    USACO comehome Dijkstra
    当设计师、产品经理和程序员去交友站点找女朋友
    Spring3.0 AOP 具体解释
    慕课网Hibernate初探之一对多映射实验及总结
    C++数组引用
  • 原文地址:https://www.cnblogs.com/oxspirt/p/7158797.html
Copyright © 2020-2023  润新知