Renaming Multiple files in different directories [duplicate]












0
















This question already has an answer here:




  • How to prepare files for rsync on a case insensitive filesystem?

    4 answers




I have about 5TB of data stored on Synology NAS servers with a DSM of 6.1+, so bash should be available for use on these systems. The issue is that we are currently archiving this data to external hard drives formatted for NTFS. The main issue is that during the archiving process there appears to be some file conflicts where Linux is case sensitive but Windows is not. So for example:



Test.txt



test.txt



In linux these are two separate files, but Windows will see them as one file.



The question in hand is that I should be able to figure out which files are conflicts using a tool we used in the past, but there are too many files to rename them manually. These files are spread out across multiple directories going 3 or 4 directories down. If I was able to find out all of the files that are in fact conflicts, what would be the easiest way to rename these files?



The naming really does not matter as long as they do not move from their current location. In the past I have just added a "1" to the end of some of these conflicts, but like I said there are hundreds of conflicts this time.



Are there any recommended tools to find file conflicts like this?










share|improve this question















marked as duplicate by Jeff Schaller, Mr Shunz, Christopher, Centimane, elbarna Jan 17 at 21:12


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.




















    0
















    This question already has an answer here:




    • How to prepare files for rsync on a case insensitive filesystem?

      4 answers




    I have about 5TB of data stored on Synology NAS servers with a DSM of 6.1+, so bash should be available for use on these systems. The issue is that we are currently archiving this data to external hard drives formatted for NTFS. The main issue is that during the archiving process there appears to be some file conflicts where Linux is case sensitive but Windows is not. So for example:



    Test.txt



    test.txt



    In linux these are two separate files, but Windows will see them as one file.



    The question in hand is that I should be able to figure out which files are conflicts using a tool we used in the past, but there are too many files to rename them manually. These files are spread out across multiple directories going 3 or 4 directories down. If I was able to find out all of the files that are in fact conflicts, what would be the easiest way to rename these files?



    The naming really does not matter as long as they do not move from their current location. In the past I have just added a "1" to the end of some of these conflicts, but like I said there are hundreds of conflicts this time.



    Are there any recommended tools to find file conflicts like this?










    share|improve this question















    marked as duplicate by Jeff Schaller, Mr Shunz, Christopher, Centimane, elbarna Jan 17 at 21:12


    This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.


















      0












      0








      0


      1







      This question already has an answer here:




      • How to prepare files for rsync on a case insensitive filesystem?

        4 answers




      I have about 5TB of data stored on Synology NAS servers with a DSM of 6.1+, so bash should be available for use on these systems. The issue is that we are currently archiving this data to external hard drives formatted for NTFS. The main issue is that during the archiving process there appears to be some file conflicts where Linux is case sensitive but Windows is not. So for example:



      Test.txt



      test.txt



      In linux these are two separate files, but Windows will see them as one file.



      The question in hand is that I should be able to figure out which files are conflicts using a tool we used in the past, but there are too many files to rename them manually. These files are spread out across multiple directories going 3 or 4 directories down. If I was able to find out all of the files that are in fact conflicts, what would be the easiest way to rename these files?



      The naming really does not matter as long as they do not move from their current location. In the past I have just added a "1" to the end of some of these conflicts, but like I said there are hundreds of conflicts this time.



      Are there any recommended tools to find file conflicts like this?










      share|improve this question

















      This question already has an answer here:




      • How to prepare files for rsync on a case insensitive filesystem?

        4 answers




      I have about 5TB of data stored on Synology NAS servers with a DSM of 6.1+, so bash should be available for use on these systems. The issue is that we are currently archiving this data to external hard drives formatted for NTFS. The main issue is that during the archiving process there appears to be some file conflicts where Linux is case sensitive but Windows is not. So for example:



      Test.txt



      test.txt



      In linux these are two separate files, but Windows will see them as one file.



      The question in hand is that I should be able to figure out which files are conflicts using a tool we used in the past, but there are too many files to rename them manually. These files are spread out across multiple directories going 3 or 4 directories down. If I was able to find out all of the files that are in fact conflicts, what would be the easiest way to rename these files?



      The naming really does not matter as long as they do not move from their current location. In the past I have just added a "1" to the end of some of these conflicts, but like I said there are hundreds of conflicts this time.



      Are there any recommended tools to find file conflicts like this?





      This question already has an answer here:




      • How to prepare files for rsync on a case insensitive filesystem?

        4 answers








      linux bash shell-script synology






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 16 at 19:14









      Rui F Ribeiro

      39.6k1479132




      39.6k1479132










      asked Jan 16 at 19:09









      bbeldenbbelden

      31




      31




      marked as duplicate by Jeff Schaller, Mr Shunz, Christopher, Centimane, elbarna Jan 17 at 21:12


      This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.






      marked as duplicate by Jeff Schaller, Mr Shunz, Christopher, Centimane, elbarna Jan 17 at 21:12


      This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
























          1 Answer
          1






          active

          oldest

          votes


















          1














          You can get a list of all the files in the current and sub folders using find . | sort -f. The sort will ignore the case so that files with the same name (ignoring case) are next to each other, e.g.:



          ./folder/dir/something/test
          ./folder/dir/something/TEST


          This should be passed to a script, e.g. Python, which can check each line with the next/previous and if there is a match, you can rename the file, adding understores, or something to it. This should not be too difficult to work out, I imagine.



          Edit:



          #!/usr/bin/env python3

          import sys

          if __name__ == "__main__":
          old_line = ""
          cur_line = ""
          for line in sys.stdin:
          old_line = cur_line
          cur_line = line
          if old_line.lower() == cur_line.lower():
          print("Duplicate found!")
          print("File: {}".format(cur_line))


          I called it like this:



          find ../ | sort -f | ./rename_files.py
          Duplicate found!
          File: ../c/modern-approach/test


          As there is a second file in that directory called ../c/modern-approach/TEST.






          share|improve this answer


























          • Thank you for the response. I like your idea of using the find command to get a list of the files in the directories and sub-directories.

            – bbelden
            Jan 16 at 19:59











          • I will have to look into using Python on a Synology NAS server. I know there are some limitations using these NAS servers with what can run on them and what cannot, so it is possible Python will.

            – bbelden
            Jan 16 at 20:04











          • Ah yes, I didn't account for the NAS running Python or not. But I'm sure you can do the same with any other scripting language. I'm sure at least one is running on the NAS or can be installed on the NAS.

            – Tommiie
            Jan 16 at 20:05











          • So it does appear that Python can be installed and run on Synology NAS servers. This script adds the underscore or random integer to the first or second file? I apologize I am not very familiar with Python scripting.

            – bbelden
            Jan 16 at 20:20











          • This script only prints the file name when a duplicate has been found. I don’t know what you want to do with the duplicates.

            – Tommiie
            Jan 16 at 20:22


















          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          You can get a list of all the files in the current and sub folders using find . | sort -f. The sort will ignore the case so that files with the same name (ignoring case) are next to each other, e.g.:



          ./folder/dir/something/test
          ./folder/dir/something/TEST


          This should be passed to a script, e.g. Python, which can check each line with the next/previous and if there is a match, you can rename the file, adding understores, or something to it. This should not be too difficult to work out, I imagine.



          Edit:



          #!/usr/bin/env python3

          import sys

          if __name__ == "__main__":
          old_line = ""
          cur_line = ""
          for line in sys.stdin:
          old_line = cur_line
          cur_line = line
          if old_line.lower() == cur_line.lower():
          print("Duplicate found!")
          print("File: {}".format(cur_line))


          I called it like this:



          find ../ | sort -f | ./rename_files.py
          Duplicate found!
          File: ../c/modern-approach/test


          As there is a second file in that directory called ../c/modern-approach/TEST.






          share|improve this answer


























          • Thank you for the response. I like your idea of using the find command to get a list of the files in the directories and sub-directories.

            – bbelden
            Jan 16 at 19:59











          • I will have to look into using Python on a Synology NAS server. I know there are some limitations using these NAS servers with what can run on them and what cannot, so it is possible Python will.

            – bbelden
            Jan 16 at 20:04











          • Ah yes, I didn't account for the NAS running Python or not. But I'm sure you can do the same with any other scripting language. I'm sure at least one is running on the NAS or can be installed on the NAS.

            – Tommiie
            Jan 16 at 20:05











          • So it does appear that Python can be installed and run on Synology NAS servers. This script adds the underscore or random integer to the first or second file? I apologize I am not very familiar with Python scripting.

            – bbelden
            Jan 16 at 20:20











          • This script only prints the file name when a duplicate has been found. I don’t know what you want to do with the duplicates.

            – Tommiie
            Jan 16 at 20:22
















          1














          You can get a list of all the files in the current and sub folders using find . | sort -f. The sort will ignore the case so that files with the same name (ignoring case) are next to each other, e.g.:



          ./folder/dir/something/test
          ./folder/dir/something/TEST


          This should be passed to a script, e.g. Python, which can check each line with the next/previous and if there is a match, you can rename the file, adding understores, or something to it. This should not be too difficult to work out, I imagine.



          Edit:



          #!/usr/bin/env python3

          import sys

          if __name__ == "__main__":
          old_line = ""
          cur_line = ""
          for line in sys.stdin:
          old_line = cur_line
          cur_line = line
          if old_line.lower() == cur_line.lower():
          print("Duplicate found!")
          print("File: {}".format(cur_line))


          I called it like this:



          find ../ | sort -f | ./rename_files.py
          Duplicate found!
          File: ../c/modern-approach/test


          As there is a second file in that directory called ../c/modern-approach/TEST.






          share|improve this answer


























          • Thank you for the response. I like your idea of using the find command to get a list of the files in the directories and sub-directories.

            – bbelden
            Jan 16 at 19:59











          • I will have to look into using Python on a Synology NAS server. I know there are some limitations using these NAS servers with what can run on them and what cannot, so it is possible Python will.

            – bbelden
            Jan 16 at 20:04











          • Ah yes, I didn't account for the NAS running Python or not. But I'm sure you can do the same with any other scripting language. I'm sure at least one is running on the NAS or can be installed on the NAS.

            – Tommiie
            Jan 16 at 20:05











          • So it does appear that Python can be installed and run on Synology NAS servers. This script adds the underscore or random integer to the first or second file? I apologize I am not very familiar with Python scripting.

            – bbelden
            Jan 16 at 20:20











          • This script only prints the file name when a duplicate has been found. I don’t know what you want to do with the duplicates.

            – Tommiie
            Jan 16 at 20:22














          1












          1








          1







          You can get a list of all the files in the current and sub folders using find . | sort -f. The sort will ignore the case so that files with the same name (ignoring case) are next to each other, e.g.:



          ./folder/dir/something/test
          ./folder/dir/something/TEST


          This should be passed to a script, e.g. Python, which can check each line with the next/previous and if there is a match, you can rename the file, adding understores, or something to it. This should not be too difficult to work out, I imagine.



          Edit:



          #!/usr/bin/env python3

          import sys

          if __name__ == "__main__":
          old_line = ""
          cur_line = ""
          for line in sys.stdin:
          old_line = cur_line
          cur_line = line
          if old_line.lower() == cur_line.lower():
          print("Duplicate found!")
          print("File: {}".format(cur_line))


          I called it like this:



          find ../ | sort -f | ./rename_files.py
          Duplicate found!
          File: ../c/modern-approach/test


          As there is a second file in that directory called ../c/modern-approach/TEST.






          share|improve this answer















          You can get a list of all the files in the current and sub folders using find . | sort -f. The sort will ignore the case so that files with the same name (ignoring case) are next to each other, e.g.:



          ./folder/dir/something/test
          ./folder/dir/something/TEST


          This should be passed to a script, e.g. Python, which can check each line with the next/previous and if there is a match, you can rename the file, adding understores, or something to it. This should not be too difficult to work out, I imagine.



          Edit:



          #!/usr/bin/env python3

          import sys

          if __name__ == "__main__":
          old_line = ""
          cur_line = ""
          for line in sys.stdin:
          old_line = cur_line
          cur_line = line
          if old_line.lower() == cur_line.lower():
          print("Duplicate found!")
          print("File: {}".format(cur_line))


          I called it like this:



          find ../ | sort -f | ./rename_files.py
          Duplicate found!
          File: ../c/modern-approach/test


          As there is a second file in that directory called ../c/modern-approach/TEST.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Jan 16 at 20:04

























          answered Jan 16 at 19:33









          TommiieTommiie

          1508




          1508













          • Thank you for the response. I like your idea of using the find command to get a list of the files in the directories and sub-directories.

            – bbelden
            Jan 16 at 19:59











          • I will have to look into using Python on a Synology NAS server. I know there are some limitations using these NAS servers with what can run on them and what cannot, so it is possible Python will.

            – bbelden
            Jan 16 at 20:04











          • Ah yes, I didn't account for the NAS running Python or not. But I'm sure you can do the same with any other scripting language. I'm sure at least one is running on the NAS or can be installed on the NAS.

            – Tommiie
            Jan 16 at 20:05











          • So it does appear that Python can be installed and run on Synology NAS servers. This script adds the underscore or random integer to the first or second file? I apologize I am not very familiar with Python scripting.

            – bbelden
            Jan 16 at 20:20











          • This script only prints the file name when a duplicate has been found. I don’t know what you want to do with the duplicates.

            – Tommiie
            Jan 16 at 20:22



















          • Thank you for the response. I like your idea of using the find command to get a list of the files in the directories and sub-directories.

            – bbelden
            Jan 16 at 19:59











          • I will have to look into using Python on a Synology NAS server. I know there are some limitations using these NAS servers with what can run on them and what cannot, so it is possible Python will.

            – bbelden
            Jan 16 at 20:04











          • Ah yes, I didn't account for the NAS running Python or not. But I'm sure you can do the same with any other scripting language. I'm sure at least one is running on the NAS or can be installed on the NAS.

            – Tommiie
            Jan 16 at 20:05











          • So it does appear that Python can be installed and run on Synology NAS servers. This script adds the underscore or random integer to the first or second file? I apologize I am not very familiar with Python scripting.

            – bbelden
            Jan 16 at 20:20











          • This script only prints the file name when a duplicate has been found. I don’t know what you want to do with the duplicates.

            – Tommiie
            Jan 16 at 20:22

















          Thank you for the response. I like your idea of using the find command to get a list of the files in the directories and sub-directories.

          – bbelden
          Jan 16 at 19:59





          Thank you for the response. I like your idea of using the find command to get a list of the files in the directories and sub-directories.

          – bbelden
          Jan 16 at 19:59













          I will have to look into using Python on a Synology NAS server. I know there are some limitations using these NAS servers with what can run on them and what cannot, so it is possible Python will.

          – bbelden
          Jan 16 at 20:04





          I will have to look into using Python on a Synology NAS server. I know there are some limitations using these NAS servers with what can run on them and what cannot, so it is possible Python will.

          – bbelden
          Jan 16 at 20:04













          Ah yes, I didn't account for the NAS running Python or not. But I'm sure you can do the same with any other scripting language. I'm sure at least one is running on the NAS or can be installed on the NAS.

          – Tommiie
          Jan 16 at 20:05





          Ah yes, I didn't account for the NAS running Python or not. But I'm sure you can do the same with any other scripting language. I'm sure at least one is running on the NAS or can be installed on the NAS.

          – Tommiie
          Jan 16 at 20:05













          So it does appear that Python can be installed and run on Synology NAS servers. This script adds the underscore or random integer to the first or second file? I apologize I am not very familiar with Python scripting.

          – bbelden
          Jan 16 at 20:20





          So it does appear that Python can be installed and run on Synology NAS servers. This script adds the underscore or random integer to the first or second file? I apologize I am not very familiar with Python scripting.

          – bbelden
          Jan 16 at 20:20













          This script only prints the file name when a duplicate has been found. I don’t know what you want to do with the duplicates.

          – Tommiie
          Jan 16 at 20:22





          This script only prints the file name when a duplicate has been found. I don’t know what you want to do with the duplicates.

          – Tommiie
          Jan 16 at 20:22



          Popular posts from this blog

          How to reconfigure Docker Trusted Registry 2.x.x to use CEPH FS mount instead of NFS and other traditional...

          is 'sed' thread safe

          How to make a Squid Proxy server?