Git Product home page Git Product logo

bulky's Introduction

Bulky - Rename multiple files at once.

build

image

Bulky is used to rename files and directories.

It's an XApp so it can work in any distribution and many desktop environments (Cinnamon, MATE, GNOME, etc..).

Thunar already has its own built-in file renamer so Bulky is redundant in Xfce.

Translations

Please use Launchpad to translate Bulky: https://translations.launchpad.net/linuxmint/latest/.

The PO files in this project are imported from there.

License

  • Code: GPLv3

bulky's People

Contributors

clefebvre avatar fenilgmehta avatar mtwebster avatar neinei0k avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bulky's Issues

All files under a directory

Is there a way to search/replace in all files within a directory (and it's subdirectories) without having to add all the files to the list manually?

Add enumeration feature to Bulky

When I use renaming tools, I often need to enumerate files. Such a feature would look good in Bulky.

Enumeration can be realised by entering an enumeration variable, e.g. %n into the field and some configuration (start number, stride, number of leading zeroes)

Suggestion about item name "Title case"

Suggestion
item name
"Title case"

For example
"Capitalize the first letter of each word"

Reason for proposal
In languages without the concept of Title case, there is a possibility of making a mistake in translation.

Nemo integration support for files on an sftp share

Hi there, I posted in the Linux Mint forum about this issue here. A potential missing feature / possibly a bug.

To get nemo multiple file rename working I had to add bulky into the nemo "bulk rename" option in nemo preferences and having done that I'm able to press F2 and rename multiple files in bulky when the files to rename reside on the machine local disk.
The problem I have is that this same thing doesn't seem to work with files that reside on an sftp connected share to a NAS box. In this case pressing F2 does launch bulky but no files are populated in bulky for renaming.

A little bit more testing proved that bulky can rename files files over stfp when bulky is launched standalone and sftp files are manually added and then renamed so it would appear that if this is an issue (not just me being stupid), the issue seems to be with nemo adding files into bulky on F2 keypress / context menu option click.

Many thanks, Joe

Add functionality to bulky

Try using the Windows application CKRename has very interesting options for renaming files that I didn't find in bulky and that would be interesting to be implemented:

-replace all filenames with a new default name
-insert batch auto-numbering at the beginning or end of the name, with initial value, increment and leading zeros
-change extensions in batch or remove them

https://www.softpedia.com/get/System/File-Management/CKRename.shtml
This CKRename is very simple and intuitive to use by commoners, who don't know regular expressions.

CKRename-1


imagine a directory with several pictures with random names and I want to rename them to:
2021_Niver_001.jpg
2021_Niver_002.jpg ...

I couldn't do this in bulky, but in CkRename it's very easy

Use glade 3.38 to created UI files

Latest version of glade shows this compatibility errors

[main_window > GtkBox > GtkBox > GtkFrame > GtkAlignment]
	Object class 'Alignment' from gtk+ 3.20 is deprecated
[main_window > GtkBox > GtkBox > GtkBox > GtkScrolledWindow > GtkViewport > treeview]
	Property 'Rules Hint' of object class 'Tree View' is deprecated

This version can be easily installed via snap

Feature request

So, I have been using Szyszka project to rename my files with patterns (not sure how they actually named) and I'd like to see this feature in Bulky too, because it makes renaming faster and comfy. It looks like that:
image

Fails to find final Dot in Folder names

In all modes I've tried, the final dot in a folder name is never matched:

Screenshot from 2022-01-19 12-18-56

Regex failing to match to last instance of DOT in folder names only:

Screenshot from 2022-01-19 12-12-05

This occurs regardless of selecting "Name only" or "Name and Extension", as well as attempting to match only the dot itself:
Screenshot from 2022-01-19 12-17-31

Sometimes underline char is duplicated

OS version: Linux Mint 20.2 Cinnamon
Bulky version: 1.7

Steps to reproduce:

  1. Create to files with 1 and 2 names respectively.
  2. Put (.*) and \1_ into Find and Replace fields respectively. (Replace mode is Name only)
  3. Obtain 1__ and 2__ names respectively.

CR: Remember control choices from last use

Request: When renaming a few files at a time, then selecting others and repeating a similar rename action, it would be great if the app remembers settings from last time (eg whether Replace or Insert was used, if "from end" was checked).

As always, it would be even better if this behaviour can be toggled from a Settings screen.
Or, even better, if a default set of settings could be loaded with each app launch.
Or maybe for a few presets to be saveable, with 1-2 clicks required for selecting a preset from launch. But I'm getting carried away.

Allow usage of fragment from old file name similar to Python slicing

On Windows, my batch renaming tool is called "Joe" (which German only, as I just saw):
http://toolsandmore.de/Central/Produkte/Software/Datei-Tools/Joe/

It allows to enter a renaming mask where one can specify fragments of the old filename and add additional elements literally or via placeholders. Example:

"cpt-picard" becomes "cpt-jean-luc-picard" with this mask: [1-4]jean-luc[4-]

  • [1-4] refers to "cpt-"; 1st til 4th letters (incl)
  • "jean-luc" is inserted as literal
  • [4-] refers to "-picard.txt"; everything from the 4th letter til end

Such a technique is always quite handy and allows to rename quite a lot in one go.
Maybe it will find it's way into Bulky.

[Enhancement] Support renaming files located across multiple sub-folders through the GUI without needing to manually add each individual file

Simply put, support the renaming of files through the GUI that are located across multiple subfolders, such as renaming the following:

/folder1/file1.url
/folder1/folder2/file2.url

into...

/folder1/file1.desktop
/folder1/folder2/file2.desktop

...but without needing to manually add each individual file.

From what I can tell, there's no way to add the contents of a folder and any contained sub-folders and it only works with individual files.

See also, my thread here where I end up having to mess around with "find" through the terminal because none of the bulk-renamers I knew of supported files in sub-folders:

[Feature] Remove accents

I usually use bulky to batch-rename files.
This time I had to find an alternative able to strip accents from filenames.
Example: La cité interdite -> La cite interdite.

I found a script to do just that. It uses the unaccent package, available in the universe repository. I guess it could be implemented in bulky in the same way.

Bulky cannot list files or directories containing (non-ascii) special characters

Distro: Linux Mint 20.x
Bulky: 1.3

Hi,

Bulky cannot list files or directories containing (non-ascii) special characters. For example, files or directories with the following filename are ignored or not listed.

Masaüstü (Turkish equivalent of Desktop)
Müzik (Turkish equivalent of Music)
Şablonlar (Turkish equivalent of Templates)

The directories or the files containing speacial locale characters such as ı, İ, Ş, Ç, ü, ö, ğ not listed on Bulky. Also, not all the contents of the directories named with special character as I mentioned are listed.

However, a nemo action I prepared as follows works without any problems and lists the files and directories I mentioned with Bulky.

[Nemo Action]
Name=Rename...
Comment=Rename with Bulky
Name[tr]=Yeniden Adlandır...
Comment[tr]=Bulky ile Yeniden Adlandır
Exec=bulky %F
Selection=m
Icon-Name=bulky
Dependencies=bulky;
Extensions=any;

Further, there is no such problem with Thunar bulk renamer.

Handle dots in directory names

Great addition to Linux Mint!

I have a set of directories with names like foo.bar-abc, foo.bar-def. I want to remove the foo.bar part. However, Bulky seems to think the dot is an extension. If I try to "Rename", then "foo.bar-" won't match anything. If I try to "Remove", then Bulky removes n characters from both the "foo" part and the "bar-" part, leaving, when n=2, "o.r-def". If I choose name-only, then the removing stops at the dot so that, even if I ask to remove 8 characters, I'm left with ".bar-abc", etc.

What I expected was that, in Replace mode, if I type "foo.bar-" in the Find field, and nothing in the Replace field, that the prefix would be removed, even if it happens to include a dot. In addition to the three choices now ("Name only", "Extension only" and "Name and Extension"), should there also be an option for "Ignore Extension"? Or, auto-ignore extensions on directory names? (Though, we'd still want to do this for file names, see below.)

A workaround is to first replace the "foo" portion using "Name only" with blanks, leaving ".bar-abc" etc. Then, switch to "Extension Only" and replace ".bar-" with blank. This leaves me with ".abc", ".def", which is not quite what I wanted (I wanted to remove the dot, which is not an extension here.)

The key is that, in Linux, unlike Windows, the dot is not special; it is just a convention that is often followed to indicate an extension, but it is perfectly valid to use the dot elsewhere, especially in directory names. Imagine server logs with an IP address: 123.456.789.abc.log or in domain names foo.com.log.

Thanks!

Files are not always renamed

I'm not sure about exact cause steps to reproduce, but I know what cause it.

When I want to rename folder e.g. /folder and file inside it e.g. /folder/file.txt, then sometimes file doesn't change its name.

Probably this is caused by renaming first a folder, because after renaming, cached path to file is no longer valid.

In my app, I first rename all files and then at the end all directories.
With directories I start to rename from the most nested path

How do I bulit it?

Hello devs! I am new to Linux app development and have no idea how to build and run bulky on my computer.

I tried running various bash and python scripts but no luck

I ran make in the root directory of the repo and got

Building the mo files
# WARNING: the second sed below will only works correctly with the languages that don't contain "-"
for file in `ls po/*.po`; do \
        lang=`echo $file | sed 's@po/@@' | sed 's/\.po//' | sed 's/bulky-//'`; \
        install -d usr/share/locale/$lang/LC_MESSAGES/; \
        msgfmt -o usr/share/locale/$lang/LC_MESSAGES/bulky.mo $file; \
done \

This is my uname -a if that makes a difference
Linux fedora 5.13.14-200.fc34.x86_64 #1 SMP Fri Sep 3 15:33:01 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Replace syntax has misleading hover text

image

The hover text makes it look like you do %1, %2, etc to insert captured groups, but it's actually \1, \2, etc because it's using Python regex.

This had me really confused until I looked at the source code and realized why %1 was treated as a literal rather than inserting a captured group, and I believe it should be changed to reflect its actual usage.

If "enumerate" means anything other than "insert capture groups," I think there should be more information on what it does, and I think there should also be a note somewhere (in both the application and repo readme, preferably) that it uses Python regex so nobody else will get confused like I was.

[feature request] customize/remember window size

First of all thanks to the Mint team for bulky which is nice.
Is it possible to add an option to remember or to customize the window size ?
This would be very useful when working with file having a long filename.

Insert at position x with overwrite fails to insert at correct position with short original filenames.

Bulky 2.1

I don't think the behaviour as shown in this screenshot is intended - it's certainly not intuitive. I'd expect in this scenario for the insert position to remain position 6 for the two short filenames and the renamed filename length be increased to allow for the overwrite, rather than for the overwrite to start at an earlier position because of the short file size.

2022-03-23_06-01

It gets really silly with a longer insert string

2022-03-23_06-06

Feature request: Sort by date function

Great app!
It would be nice to be able to sort files by date of creation, so you can number them chronologically.
You could also add an option that would automatically append the creation date/time to the file name in any format.

Crash when using backspace for replace

bulky 1.8 crashes, when I enter a backspace character in the replacement line without activating "regular expression" before. Also, if a backspace is present in the replace-field and a unselect regular expressions afterwards, it crashed (it hangs, no reaction, must be killed)

Not working with DOT

I tried to rename files end of name and extension) and it didn't work. Is it a bug?

See screenshot :

image

Problem with uppercase and lowercase

Hi everyone.
When I use bulky to rename a file with an uppercase name with the same name to lowercase, and vice versa, it gives me error: Unable to rename file, file name already exists.
But it does it only on network storage disks and also on an internal disk of the PC.
Linux mint 20.3 is mounted on /dev/sda3
the HDD internal is /dev/sdb1
the SSD external is dev/sdc1
and there are other HDD on network.
The error is given to me with HDD /dev/sdb1 and with network hard disk.

Does anyone have any idea what it may depend on and whether it can be solved?
Maybe it can depend on the file and directory permissions?

When I have to edit files on hard drives on the network I have to do it with root permissions. But even so bulky gives me the error.
The permissions of the HDD internals /dev/sdb1 are drwxr-xr-x for directory, and -rw-r--r-- for files.
Instead for SSD external dev/sdc1 are drwxrwxrwx for directory, and -rwxrwxrwx for files.

Type partition of HDD internals /dev/sdb1 is W95 FAT32 (LBA).
SSD external /dev/sdc1 is NTFS/exFAT/HPFS

[Bug] Crash when Replace text has \0 with capture groups

Replicate

  • Add a file to the File Renamer
  • Enable "Regular expression"
  • Enter a capture group into the "Find" field (Entering () is sufficient)
  • Enter \0 in the "Replace" field

Expectation

Return entire matching regex
OR
Nothing

Result

Bulky stalls with the terminal outputting "embedded null byte" indefinitely.

No docs about supported regular expression syntax

There is no way to understand which regex features are supported without testing it manually. Please specify it in README as basic regex|extended regex|perl compatible regex (maybe another regex flavor used).

You can assign me to this issue and I will try to fix it.

[Feature Request] Open files in folder

Having to open files from in Bulky is annoying. It would be more useful to be able to select files in a directory, where you frequently notice changes need to be made, and open them in Bulky with the Open With feature. Or at least a drag-and-drop capability.

Also, as stated elsewhere, being able to select all files in a directory (and its sub-directories) and make changes would be helpful; specially if the user could select specific file types within the selection.

[BUG] Still an error message for FTP places

Bulky 2.10 on Linux Mint 21.2 Cinnamon
I have opened ftp://[email protected]/ in nemo:
grafik
Note the path bar shows "w01d4c29 auf (on) w01d4c29.kasserver.com" while the titlebar shows / auf (on) w01d4c29.kasserver.com. Anyway, when I choose two files and press F2...
grafik
It shows an error message. It says that "/" is not writeable. It seems that "/" is considered as the parent folder of remote places. (Which should, depending on the situation, be more logical than the /run/user/... path). The renaming works - the rename button isn't disabled as soon as I enter a valid replaceable text. But there's this useless error. Now, let's see what happens if I rename files that are within a folder of the remote place.
grafik
The same happens here. "bulkyerror", the parent, is considered as non-writable. Somethings wrong with URI and path handling? Please fix this.

Insert operation is buggy when length of file name is 1

Bug Description

  • As it can be seen in the below image, insertion of the yellow emoji in a.c results in a🟡.c instead of 🟡a.c. And, the insertion works absolutely file when file name length is >= 2
    image

Version Information

  • I am using the latest version of bulky

a new bulky release

Hi guys,

Is anyone able to say when a new release of this application will be published?

http://packages.linuxmint.com/pool/main/b/bulky/ still hosts v1.7 from July when this application was released along with Linux Mint 20.2 Uma.

https://github.com/linuxmint/bulky/releases in this repo has v1.7 as the latest built release

There have been a number of fixes applied in this repo since v1.7 was published in July

I'm unable to find any doc that describes how I might build this application myself locally

Thanks, Joe

[Feature Request] Multiple Instances

It'd be nice to be able to run multiple instances. It'd make it easier to work with multiple folders that will need the same parameters recursively but need small bits changed.

Crashing if large number of files added (BadAlloc)

Linux Mint 20.2 Cinnamon 5.0.7 on 5.11.0-41-generic.
Bulky crashes for me instantly if more than 1424 files are selected in nemo and right-clicked for rename or when more than 1424 files are selected from bulky itself:

(bulky.py:152074): Gdk-ERROR **: 10:51:32.027: The program 'bulky.py' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAlloc (insufficient resources for operation)'.
(Details: serial 32734 error_code 11 request_code 130 (MIT-SHM) minor_code 5)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)

When I load 1424 exactly, bulky works as intended. When adding just one more file bulky crashes. My memory usage is never even close to maxing out (15GB), but maybe it's my system anyway?

In anyway there should be a warning message if too many files to handle are tried to be loaded.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.