精华内容
下载资源
问答
  • Mac系统下删除加锁文件方法.docx
  • 在Mac OS X下,无法删除文件无外乎三种情况:1,文件(夹)被锁定...加锁文件或文件夹图标下有小锁的标注,可以避免文件不慎被更改、移动或删除,一般来说,普通用户都没有给自己文件加锁的习惯。不过,锁...

    链接地址1:http://jingyan.baidu.com/article/fdffd1f8e39403f3e98ca195.html

    在Mac OS X下,无法删除的文件无外乎三种情况:1,文件(夹)被锁定;2,文件正在使用中;3,没有权限的文件(夹)。加锁的文件或文件夹图标下有小锁的标注,可以避免文件不慎被更改、移动或删除,一般来说,普通用户都没有给自己文件加锁的习惯。不过,锁定的文件有时会在你拷贝资料,整理系统时出现。这些文件不能从当前的路径中移走,在目标文件夹下则会生成被锁定的文件或文件夹副本。即使这些倔强的家伙进了废纸篓,我们也不能用常规办法将他们删除。那么该怎么办呢?本贴『苹果贴士』将教你几招彻底删除这些上锁的玩意。
    Mac系统下下删除加锁文件方法
     

    步骤/方法

    1.  
       被锁定的文件夹本身不能直接移动,其子目录内的内容不能更改,但其上层文件夹并不受锁定的影响。因此,倘若你需要移动被锁定的文件,只需通过移动上层文件夹将内含锁定的文件或文件夹转移至垃圾箱或目标文件夹。
        
    2.  
      而Mac OS X下,锁定文件(夹)以及解锁的过程很简单。只要选择要锁定或解锁的文件(夹),然后按下组合键『Apple+I』(或右键选择“显示简介”"get info"),在文件夹或文件简介界面勾选或勾除锁定选项即可。
      Mac系统下下删除加锁文件方法
    3.  
      如果某个路径下有多个文件或文件夹需要上锁或解锁,可以将这些文件(夹)全部选上,然后用组合键『Option+苹果键+i』。所有的文件信息将在一个简介中显示出来,只要勾选或勾除锁定选项一次就一气呵成了。文件和文件夹被锁定之后将不能从“简介”中修改所有人和权限。如果试图修改,系统将弹出警告信息,提示此操作不能完成,出现意外错误,错误代码为120。 对文件(夹)加锁可以避免自己或他人在使用电脑时不慎被更改、移动或删除。倘若你需要删除一个加锁文件
    4.  
      ,系统会跳出提示框:
        你会看到上面这个对话框有两个选择:停止(Stop)和继续 (Continue)。如果选择“停止”,系统将取消清倒废纸篓操作,因此,废纸篓的所有内容都将保存。如果选择“继续”,除了被锁定文件或文件夹的上层目录将逐层保留以及被锁定文件夹内的文件及第一层子目录被保留以外,其他未被所定的文件或文件夹将被清除。废纸篓里有多少个被锁定的文件存在,当清空时便会有多少个提示跳出,等待用户选择是否继续或停止操作。让被锁定的文件或文件夹在清空废纸篓时立即被清空的方法是按住Option键的同时进行倾倒废纸篓的操作(组合键苹果键、Shift、Option以及Delete)。当然,如果你是苹果新生,害怕一不小心删除了系统文件。你可以从Finder工具栏选择“安全清倒废纸篓”(Secure Empty Trash)。安全清倒废纸篓与清倒废纸篓的区别,除了上述的对于锁定或正在运行的文件或文件夹在用法上的不同,最主要的是,采用安全清到废纸篓后文件的原先所占的空间将被系统的自动生成的数据所占据,原来的文件将无法找回,而“清倒废纸篓”只是清除了文件的索引信息,对文件本身的破坏并不严重,如果用第三方软件及时进行修复或可找回被删除的文件。
       值得注意的是,有些被锁定的文件或文件夹在“显示简介”选项中的锁定选项为灰色,不能轻易勾选解锁。大家可以试用以下步骤来解锁:
      1,从实用程序(Utilities)下打开终端(Terminal)
      2,输入: chflags -R nouchg空格
      3,将被锁定的文件(夹)拉到终端(Terminal)上,如果有若干锁定的文件或文件夹,可以全部选上并拉到终端。
      4,回车。
        当你再次选择该文件(夹)、或重起Finder时,文件或文件夹锁定的图标就应该消逝了。 
        如果以上方法还不能解锁,可以在Mac OS 10.4+下,尝试以下步骤:
      1,重新启动,启动时按住苹果键和s
      2,待进入黑色界面(光标停顿后),输入:mount -uw / 回车,系统装上硬盘
      3,输入:
      defaults write /Library/Preferences/SystemConfiguration/autodiskmount AutomountDisksWithoutUserLogin -bool true
      (正常情况下,Mac OS X只允许用户在登录进入系统后才能载入移动磁盘。以上命令使系统在无用户登录时可以自动载入磁盘)
      4,输入:sh /etc/rc 回车。(等待光标停顿后回车)
      (此步所提供的功能使单用户模式就象根用户(root)做OS X登录一样,只是没有OS X的用户画面)
      5,键入: find / -flags schg -exec chflags noschg {} \;回车
      (本行执行了几个命令,是从根目录下查找带有系统不可改变字节(immutable bit)的文件,然后将该bit清除。由于本行从根目录下查起,所以比较慢。稍待片刻,待光标停止,进行下一步)
      6,键入:rm /Library/Preferences/SystemConfiguration/autodiskmount.plist 回车。
      (本命令将第三步修改的文件删除,使系统复原)
      7,键入:reboot 回车
      (机器自行重新启动)
      登录后,再顽固的锁定的文件(夹)也瓦解了^^
      Mac系统下下删除加锁文件方法
    5.  


    链接地址2:http://www.macx.cn/thread-2055649-1-1.html

    本帖最后由 - 于 2012-7-20 16:33 编辑

    <ignore_js_op>屏幕快照 2012-07-20 下午3.44.55.jpg 

     



    有时候在Mac OS X中会遇到权限错误等问题,导致无法删除文件或者无法清空废纸篓。最常见的状况是遇到提示“操作无法完成因为项目xx正在使用中/被锁定”类似的话语。有些时候遇到这样的问题,关闭某些程序,或者重启一下Mac可以解决问题。当然你也可以通过终端命令来清空废纸篓。

    首先,可以尝试推出所有控制文件权限的软件,之后按住并右键选择“安全倾倒废纸篓”。如果没有效果的话,看下面:

    通过Spotlight打开[终端]程序,执行以下两个命令:

    1. cd ~/.Trash
    2. chflags -R nouchg *
    复制代码

    这个是更改权限的方式,之后再次尝试右键倾倒废纸篓。

    最后的办法是通过命令强制删除,这种删除方法会不经过任何提示立即执行,所以请谨慎使用。

    当然还是在终端中,首先进入废纸篓的目录:

    1. cd ~/.Trash
    复制代码

    之后使用这个ls命令确认自己进入正确的目录,显示的是会是废纸篓中无法删除的文件:

    1. ls
    复制代码

    最后使用rm命令删除上面显示的文件

    1. rm xx.xxx
    复制代码

    其中xx.xxx就是要替换成你刚才用ls命令看到的需要删除的文件名称


    当然含有一个更狠的sudo rm -rf删除命令,但是很可能导致打错一个符号就删了整个系统,所以就不在这里多说了,建议不了解的也不要尝试。

     

    转载于:https://www.cnblogs.com/wvqusrtg/p/5239534.html

    展开全文
  • Linux中文件加锁

    千次阅读 2019-12-22 22:12:36
    在执行期间一直持有这个文件锁并在即将终止前删除这个文件。如果启用了 daemon 的另外一个实例,那么它在获取该文件的写锁时就会失败,其结果是它会意识到 daemon 的另一个实例肯定在运行,然后终止。 很多的...

    /proc/locks

    andrew@andrew-Thurley:/dev$ cat /proc/locks 
    1: POSIX  ADVISORY  WRITE 8968 08:01:11666907 1073741825 1073741825
    2: POSIX  ADVISORY  READ  2433 08:01:11798469 128 128
    ...
    35: FLOCK  ADVISORY  WRITE 1436 00:1a:7 0 EOF
    51: FLOCK  ADVISORY  WRITE 1036 00:16:763 0 EOF
    
    

    使用ps -p PID查看进程的相关信息

    andrew@andrew-Thurley:/dev$ ps -p 8968
      PID TTY          TIME CMD
     8968 ?        00:00:02 chrome
    

    从上面的输出可以看出持有的锁的程序是chrome,即 google浏览器

    /dev我下搜索主设备号为8次设备号为1的设备,是/dev/sda1

    andrew@andrew-Thurley:/dev$ ls -li /dev/sda1 |awk '$6=8'
    351 brw-rw---- 1 root disk 8 1 12月 22 13:13 /dev/sda1
    

    查看设备/dev/sda1的挂载点,并在该部分文件系统中搜索i-node节点为11666907的文件

    andrew@andrew-Thurley:/dev$ mount |grep sda1
    /dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
    

    从上面的输出可以看出,设备/dev/sda1是挂在在 /上的

    andrew@andrew-Thurley:/dev$ sudo find / -mount -inum 11666907
    /home/andrew/.config/google-chrome/Default/History
    

    find -mount选项是防止find进入到/下的子目录进行搜索

    最后显示被锁住文件的内容--google浏览器的历史记录

    sudo vim /home/andrew/.config/google-chrome/Default/History

    是一个google浏览器的SQLite数据库文件

    在这里插入图片描述

    这样就可以看出google浏览器持有文件sudo vim /home/andrew/.config/google-chrome/Default/History上的一把锁,而这个文件的内容就是google用于记录历史记录的数据库文件。

    通过/proc/locks还能够获取被阻塞的锁请求的相关信息,如下图所示

    在这里插入图片描述

    其中锁号后面随即跟着->的行表示被阻塞的锁的请求

    仅运行一个程序的单个实例

    一些程序-特别是很多的daemon需要确保同一时刻只有一个程序实例在系统中运行。完成这项任务的一个常见的方法是让daemon在一个标准的目录中创建一个文件并在该文件上放置一把写锁。daemon在执行期间一直持有这个文件锁并在即将终止前删除这个文件。如果启用了daemon的另外一个实例,那么它在获取该文件的写锁时就会失败,其结果是它会意识到daemon的另一个实例肯定在运行,然后终止。

    很多的网络服务器采用了另一种常规的做法,即当服务器绑定的众所周知的socket端口号已经被使用时就认为该服务器实例已经处于运行在状态了

    /var/run目录通常是存放此类文件的位置,或者也可以在daemon的配置文件中加上一行,来指定文件的位置。

    通常daemon会将其进程ID写入该文件,因此这个文件命名时通常将.pid作为扩展名。这对于那些需要找出daemon的进程ID的应用程序来讲是比较有用的。它允许执行额外的健全检查--效果可以像20.5节那样使用kill(pid,0)来检查进程ID是否存在。

    文件create_pid_file.c展示了,用来创建和锁住一个进程ID锁文件的代码实现。可以使用下面的方式调用这个函数。

    if(createPidFile("mydaemon", "/car/run/mydaemon.pid", 0) == -1)
    	errExit("createPidFile");
    

    createPidFile函数的精妙之处在于使用ftruncate()函数来清除文件中之前存在的所有的字符串。之所以这样做是因为daemon的上一个实例在删除文件时可能因系统崩溃而失败,在这种情况下,如果新的daemon实例的进程ID较小,那么可能就无法完全覆盖之前文件中的内容,从严格意义上来说清除所有的既有字符串不是必需的,但这样做显得更加简洁并且排除产生混淆的可能。

             
    #include <sys/stat.h>
    #include <fcntl.h>
    #include "region_locking.h"             /* For lockRegion() */
    #include "create_pid_file.h"            /* Declares createPidFile() and
                                                      defines CPF_CLOEXEC */
    #include "tlpi_hdr.h"
    
    #define BUF_SIZE 100            /* Large enough to hold maximum PID as string */
        
    #define CPF_CLOEXEC 1
    static int
    lockReg(int fd, int cmd, int type, int whence, int start, off_t len)
    {
        struct flock fl;
    
        fl.l_type = type;
        fl.l_whence = whence;
        fl.l_start = start;
        fl.l_len = len;
    
        return fcntl(fd, cmd, &fl);
    }
    
    int                     /* Lock a file region using nonblocking F_SETLK */
    lockRegion(int fd, int type, int whence, int start, int len)
    {
        return lockReg(fd, F_SETLK, type, whence, start, len);
    }
    int
    createPidFile(const char *progName, const char *pidFile, int flags)
    {
        int fd;
        char buf[BUF_SIZE];
    
        fd = open(pidFile, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
        if (fd == -1)
            errExit("Could not open PID file %s", pidFile);
    	//< flags 设置为1的时候使用fcntl设置FD_CLOEXEC
        // 对于通过exec()来从起自己的进程比较有用,如果在exec()时文件描述符没有被关闭,那么重新启动的服务器就会认为服务器的另一个示例处于运行状态。
        if (flags & CPF_CLOEXEC) {
    
            /* Set the close-on-exec file descriptor flag */
    
            /* Instead of the following steps, we could (on Linux) have opened the
               file with O_CLOEXEC flag. However, not all systems support open()
               O_CLOEXEC (which was standardized only in SUSv4), so instead we use
               fcntl() to set the close-on-exec flag after opening the file */
    
            flags = fcntl(fd, F_GETFD);                     /* Fetch flags */
            if (flags == -1)
                errExit("Could not get flags for PID file %s", pidFile);
    
            flags |= FD_CLOEXEC;                            /* Turn on FD_CLOEXEC */
    
            if (fcntl(fd, F_SETFD, flags) == -1)            /* Update flags */
                errExit("Could not set flags for PID file %s", pidFile);
        }
    	//设置一把写锁 SEEK_SET-开头  0 到 len=0代表到EOF
        //即对整个文件放置一把写锁,并且写锁的范围随着文件的增加而改变
        if (lockRegion(fd, F_WRLCK, SEEK_SET, 0, 0) == -1) {
            if (errno  == EAGAIN || errno == EACCES)
                fatal("PID file '%s' is locked; probably "
                         "'%s' is already running", pidFile, progName);
            else
                errExit("Unable to lock PID file '%s'", pidFile);
        }
    	//将文件的大小截断为0
        if (ftruncate(fd, 0) == -1)
            errExit("Could not truncate PID file '%s'", pidFile);
    	//将PID写如文件
        snprintf(buf, BUF_SIZE, "%ld\n", (long) getpid());
        if (write(fd, buf, strlen(buf)) != strlen(buf))
            fatal("Writing to PID file '%s'", pidFile);
    
        return fd;
    }
    
    

    老式加锁技术

    在较老的不支持文件加锁的UNIX实现上,可以是会用一些特别的加锁技术。尽管这些技术都已经被fcntl()记录加锁计数所取代,但这里仍然需要介绍它们,因为一些较早的应用程序中,仍然存在他们的身影。所有的这些技术在性质上都是劝告式的

    open(file, O_CREAT | O_EXCL,...)加上unlink(file)

    SUSv3第三版的单一规范里,要求使用了O_CREATO_EXCL标记的open()调用原子执行检查文件的存在性,以及创建文件的两个步骤。这就意味着如果两个进程尝试在创建一个文件时指定这些标记,那么就保证其中只有一个进程能够成功。(另外一个进程从open中收到EEXIST错误。)这种调用与unlink()系统调用组合起来就构成一种加锁机制的基础。获取所可通过使用O_CREATO_EXCL标记打开文件后,立即跟着一个close()来完成,释放锁可通过使用unlink()来完成,尽管这项技术能够正常的工作,但它存在一些局限:

    • 如果open()失败了,即表示其他进程拥有了锁,那么就必须要在某种循环中重试open()操作,这种循环既可以是持续不断地,也可以是相邻两次尝试时间上加上一定的时间延时。有了fcntl()之后则可以使用F_SETTLKW来阻塞直到锁可用为止。

    • 使用open()uunlink()获取和释放锁涉及到的文件系统的操作,这比记录锁要慢得多,

    • 如果一个进程意外的终止并且没有删除锁文件,那么锁就不会被释放。处理这个问题存在特别的技术,包括检查文件的上次修改时间和让锁的持有者将进程ID写入文件,这样就能够检查进程是否存在,但这些计数中没有一项技术是安全可靠的,与之相反的是,在一个进程终止时记录锁的释放操作是原子的。

    • 如果放置多把锁,那么就无法检车出死锁,如果发生了死锁,那么造成死锁的进程就会永远的保持阻塞。

    • 第二版的NFS不支持O_EXCL语义。Linux 2.4NFS客户端也没有正确地实现O_EXCL,即使是第三版的NFS以及以后版本的也没能完成这个任务。

    link(file, lockfile)加上unink()lockfile

    link()系统调用,在新链接已经存在时,会失败的事实可用作一种加锁机制,而解锁功能则还是使用unlink()来完成。常规的做法是让需要获取锁的进程创建一个临时的文件名,一般来将需要包含进程ID。要获取锁则需要将这个临时文件链接到某个约定的标准路径上。如果link()调用成功,那么就获取了锁,如果调用失败EEXIST,那么就是另一个进程持有了锁,因此必须要在稍后的某个时刻重新尝试获取该锁。这项技术与上面介绍的open(file, O_CREAT|O_EXCL, 0)技术存在相同的局限。

    open(file, O_CREAT|O_TRUNC|O_WRONLY, 0)

    当指定O_TRUNC并且写权限被拒绝时在一个既有文件上调用open()会失败的事实,可作为一项几所技术的基础,要获取一把锁可以使用下面的代码,来创建新文件。

    fd=open(file, O_CREAT|O_TRUNC|O_WRONLY, (mode_t)0);

    close(fd);

    如果open()调用成功,那么就获取了锁,如果因EACCES而失败(即文件存在但是没没有人拥有权限),那么其他进程持有了锁,还需要在后面某个时刻尝试重新获取锁。这项计数与前面介绍的技术存在相同的局限,还需要注意的是不能具备超级用户特权的程序使用这项技术,因为open()总是会成功,不管文件上设置的权限是什么。

    总结

    文件加锁使得进程能偶同步对一个文件的访问,Linux提供了两种文件加锁的系统调用

    1. BSD衍生出来的flock()
    2. system V衍生出来的fcntl()

    尽管这两组系统调用在大多数UNIX实现上都是可用的,但只有fcntl()加锁是在SUSv3中进行了标准化。


    flock()系统调用对整个文件加锁,可放置的锁有两种:一种是共享锁,这种锁与其他进程持有的共享锁是兼容的;另一种互斥锁,这种锁能偶阻止其他进程放置这两种锁。


    fcntl()系统调用将一个文件的任意区域上放置一把锁(“记录锁”),这个区域可以是单个字节也可以是整个文件。可放置的锁有两种:读锁和写锁,他们之间的兼容性语义与flock()放置的共享锁和互斥锁之间的兼容语义类似。如果一个阻塞式(F_SETLKW)锁请求将会导致死锁,那么内核将让其中一个受影响的进程的fcntl()失败(返回EDADLK错误)。


    除非系统中的flock()是使用fcntl()实现的,否则使用flock()fcntl()放置的锁之间是相互不可见的,通过flcok()fcntl()放置的锁在fork()中的继承语义和在文件描述符被关闭时的释放语义是不同的。

    Linux特有的/proc/locks文件给出了系统中所有进程当期持有的文件锁。

    展开全文
  • (1)chattr:仅仅是root用户可以使用 对系统安全有用的命令,改变文件的额外...a:即使你是root用户,你不能删除文件(rm -f),不能清空(>test.txt)文件,只能追加内容到文件(echo 1111>>test.txt)...
    文件的隐藏属性只对ext2/ext3/ext4文件系统完整有效,其他文件系统 可能仅支持部分隐藏属性 或者根本不支持隐藏属性
    (1)chattr:仅仅是root用户可以使用,是建立另凌驾于rwx基础权限之上的授权
    对系统安全有用的命令,改变文件的额外属性
    格式:chattr [-RVf][-v version][mode]files......
    R:递归更改目录下所有的子目录和文件的属性
    V:显示详细信息
    f:忽略大部分详细信息
    -v version:显示文件的档案号码
    mode:+-=[acdeijstuADST]
    a:即使你是root用户,你不能删除文件(rm -f),不能清空(>test.txt)文件,只能追加内容到文件(echo 1111>>test.txt)
    所以,即使黑客获取了root权限,但是有a属性,他也不能够操作此文件
    i:文件加锁,做什么都没有权限
    e:该文件使用extends来映射磁盘块
    
    举例:
    lsattr test.txt 
    chattr +a test.txt 
    
    实例:在某个项目中,我们可以每天自动实现把服务器的日志备份到指定的目录,备份目录可设置a属性,变为只可创建文件不可删除
    .bash_history:存储每个用户历史记录的文件
    给命令历史记录文件,加两道锁,使得监控文件更加安全:
    (1)设置主和组:chown root root .bash_history
    (2)设置其他用户没有执行权限:chmod 606 .bash_history
    (3)设置a隐形权限:chattr +a .bash_history
    说明:chattr命令不宜对目录 / /dev/ /tmp/ /var/等进行设置,严重者甚至容易导致系统无法启动
    
    (2)lsattr:显示文件的额外属性
    -a:显示所有文件和目录
    -d:如果目标是目录,仅列出目录本身的属性,不会列出文件的属性
    
    
    展开全文
  • linux文件加锁,解锁

    万次阅读 2019-03-22 14:32:16
    chattr:加锁文件,无修改,无删除权限 常用参数: +a:可给文件追加内容,但无法删除 +i:加锁文件(文件不能被删除、改名、设定链接关系,同时不能写入或追加内容) -i:解锁文件(与+i相反) 常用参数用法:...

    chattr:加锁文件,无修改,无删除权限

    常用参数:

    +a:可给文件追加内容,但无法删除

    +i:加锁文件(文件不能被删除、改名、设定链接关系,同时不能写入或追加内容)

    -i:解锁文件(与+i相反)

    常用参数用法:
           加锁:chattr +i  文件       
           查看加锁: lsattr 文件

     +i  加锁文件

    chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

     -i  解锁文件

    chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

    展开全文
  • 关于c实现文件加锁

    千次阅读 2018-05-02 10:00:44
    文件加锁2012-02-08 12:56 590人阅读 评论(0) 收藏 举报cmddescriptor测试structlibraryfile UNIX网络编程卷2进程间通信—记录锁1.记录锁的功能 当一个进程正在读或修改文件的某个部分时,它可以阻止其他进程...
  • Linux中给文件或者文件夹加锁,解锁 给文件加锁 如图所示,表示已经给文件加锁成功 给文件加锁和解锁的命令 chattr +i 1.txt chattr -i 1.txt 参数 a:让文件或目录仅供附加用途。 b:不更新文件或目录...
  • Python多线程读写文件加锁

    千次阅读 2018-04-26 15:09:15
    Python的多线程在io方面比单线程还是有优势,但是在多线程开发时,少不了对文件的读写操作。在管理多个线程对同一文件的读写操作时,就少不了文件锁了。使用fcntl在linux下,python的标准库有现成的文件锁,来自于...
  • Python的多线程在io方面比单线程还是有优势,但是在多线程开发时,少不了对文件的读写操作。在管理多个线程对同一文件的读写操作时,就少不了文件锁了。 使用fcntl 在linux下,python的标准库有现成的文件锁,来自于...
  • 文件加锁

    2017-11-29 14:36:56
    文件加锁 ...给文件加锁,在一定的程度上可以防止文件被恶意修改或删除,增加了文件的安全性 实例给文件加锁,不让用户写入:[root@localhost ~]# echo test >> test.txt[root@localhost ~]# ca...
  • ubuntu强制删除带锁文件

    千次阅读 2017-07-19 12:41:42
    sudo rm -rf 文件
  • linux下如何删除带锁文件夹呢

    千次阅读 2018-07-30 20:14:09
    1.终端下,cd 到要删带锁文件夹所在目录 2.输入 sudo chmod -R 777 + 带锁文件夹名称 输入用户密码,解锁成功 3.现在该文件可以进行移动或者删除
  • 加密的数据文件受到保护,不会被查看,修改,移动,复制和删除。该软件速度极快,特别适用于加密大型文件或大型文件夹。 下载安装运行闪灵文件夹锁后会出现以下界面: 此密码为用户打开文件,解锁文件的密码,请...
  • 目录前言flock命令命令介绍flock实例代码实现获取文件文件锁...最简单方案是打开进程创建一个文件,程序结束时删除文件,当第二个程序运行时判断该文件存在则认为已有程序运行。问题是程序异常退出没有删除那个...
  • 文件锁的类型  1、读锁:共享锁,如果A进程对文件
  • chattr: 加锁文件,无修改,无删除权限。 常用参数: +a: 可给文件追加内容,但无法删除。 +i 加锁文件(文件不能被删除、改名、设定链接关系,同时不能写入或追加内容) -i 解锁文件(与+i相反) 常用参数...
  • // 在路径d:/test下创建文件liujg File file = new File("d:/test/liujg"); if (file.getParentFile().isFile()) // return;**** if (!file.getParentFile().isDirectory()) { file.getParentFile()....
  • 文件加锁 不可写 sudo chattr +i /etc/resolv.conf 文件解锁 可写 sudo chattr -i /etc/resolv.conf chattr命令介绍 chattr命令用于更改Linux文件上属性。以下是它的语法: chattr [ -RVf ] [ -v version ] [ mode...
  • step1:在需要解锁的文件或文件夹进入终端 (注意:不需要进入需要解锁的文件夹) 或者直接通过终端定位到文件夹或文件所在路径 step2:终端输入: sudo chmod 777 test 给test文件夹读写权限。 示例: ...
  • 1.flock() 给整个文件加锁 2.fcntl() 给一个文件区域加锁 2.flock() 常规方法: 1.给文件加锁 2.执行文件IO 3.解锁文件使得其他进程能够给文件加锁 混合使用加锁和 stdio 函数: 由于 stdio 库会在...
  • 数据库加锁

    2020-11-05 16:07:19
    Lock Tables…READ不会阻塞其他线程对表数据的读取,会阻塞其他线程对数据变更 Lock Tables…WRITE会阻塞其他线程对数据读和写 Lock Tables…READ不允许对表进行更新操作(新增、删除也不行),并且不允许访问未被锁...
  •  当Subversion改变你的工作拷贝(或是.svn中的任何信息),它会尽可能的小心,在修改任何事情之前,它把意图写到日志文件中去,然后执行log文件中的命令,并且执行过程中在工作拷贝的相关部分保存一个锁,防止...
  • 完美解决ubuntu中文件夹加锁的情况

    千次阅读 2020-07-18 15:59:34
    首先来看看"桌面"加锁的情况 执行以下命令修改后 sudo chmod 777 桌面 锁没有了
  • ntp服务器:Network Time Protocol ntp服务器时间同步 sudo apt-get install ntpdate ...文件加锁 chattr +a aaa.txt //禁止编辑与删除(root也无法删除) lsattr aaa.txt chattr -a aaa.txt  
  • 如何删除home下的一个加锁文件夹?

    千次阅读 2018-04-01 21:11:17
    删除home下的加锁文件,有三种方法:(1).sudo rm -rf xxx 其中xxx是文件夹名字(2).sudo chmod 777 文件夹名(3).sudo rm -rf 文件夹名三种方法均可,本人也完全试过,第一次发博客,欢迎大神指点....
  • c#文件锁的实现

    千次阅读 2018-06-02 21:41:58
    大致功能是,启动 文件锁 程序后,将想要上锁的文件或文件夹拖入到加密区,实现对 文件或文件夹 的加密,或者点击浏览文件夹 选择自己想要加密的文件或文件夹。1&gt;效果: 2&gt;对文件或文件夹上锁的原理...
  • androidSDK中并没有锁定文件相关的api. 但是android是基于linux操作系统的,linux比较底层,灵活性也更大,为了实现锁定文件的效果,大概有以下几种办法: 用chmod命令修改文件读写权限 利用linux中的多线程独占锁,...
  • 文件加锁函数

    2010-06-23 11:08:00
    fcntl函数 <br />  该函数可以改变已打开的文件的性质。  #include <fcntl.h><br /> int fcntl(int fields, int cmd, .../* int arg */); //若成功则依赖于cmd,若出错则返回-1 第三个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,039
精华内容 26,015
关键字:

如何删除加锁文件